Pelajaran 36 / 37 · Window function
Menyimpan satu baris per grup dengan ROW_NUMBER
Beri nomor pada baris di setiap partisi, lalu simpan baris bernomor 1. Berbeda dengan GROUP BY, baris yang tersisa tetap membawa semua kolomnya. Hiro punya dua pesanan senilai 189; id di ORDER BY menentukan mana yang dipilih, tanpa itu pilihannya tidak pasti.
Query-nya
SELECT id, customer_id, amount
FROM orders
QUALIFY row_number() OVER (PARTITION BY customer_id ORDER BY amount DESC, id) = 1
Coba = 2: yang tersisa pesanan terbesar kedua setiap pelanggan, dan pelanggan dengan satu pesanan saja hilang.
Berikutnya: Studi kasus: total pendapatan terlalu besar · Semua pelajaran