Saya memiliki kumpulan data yang berisi kolom Tanggal
, Kucing
, dan QTY
. Apa yang ingin saya lakukan adalah menambahkan kolom unik yang hanya menghitung nilai Cat
yang unik saat melakukan penghitungan baris. Inilah yang saya inginkan agar set hasil saya terlihat seperti ini:
Dengan menggunakan query SQL di bawah ini, saya bisa mendapatkan baris menggunakan fungsi row_number()
.
Namun, saya tidak bisa mendapatkan kolom unik yang saya gambarkan di atas. Ketika saya menambahkan group by ke klausa OVER
, itu tidak bekerja. Apakah ada yang punya ide bagaimana saya bisa mendapatkan kolom hitungan unik ini untuk bekerja?
SELECT
Date,
ROW_NUMBER() OVER (PARTITION BY Date ORDER By Date, Cat) as ROW,
Cat,
Qty
FROM SOURCE
Berikut ini adalah solusi alternatif.
Anda tidak perlu khawatir tentang urutan Cat. Dengan menggunakan SQL berikut ini, Anda akan bisa mendapatkan nilai unik untuk kombinasi Tanggal &; Cat Anda.
SELECT
Date,
ROW_NUMBER() OVER (PARTITION BY Date, Cat ORDER By Date, Cat) as ROW,
Cat,
Qty
FROM SOURCE
DENSE_RANK() OVER (PARTITION BY date ORDER BY cat)