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