Rumah >pangkalan data >tutorial mysql >KUMPULAN OLEH lwn. PARTITION OLEH: Apakah Perbezaan Utama dalam Pertanyaan Agregat?
Membezakan PARTITION BY daripada GROUP BY
Apabila bekerja dengan pertanyaan agregat, GROUP BY telah lama menjadi pilihan yang biasa untuk mengumpul data. Namun, kemunculan PARTITION BY telah memperkenalkan konsep serupa yang menimbulkan persoalan tentang hubungannya dengan GROUP BY.
Memahami Peranan GROUP BY
GROUP BY beroperasi di tahap pertanyaan, mengubah keseluruhan hasil pertanyaan. Dengan mengumpulkan baris berdasarkan lajur tertentu, ia memekatkan data, mengira nilai agregat (cth., kiraan, purata, jumlah) untuk setiap kumpulan. Contohnya:
select customerId, count(*) as orderCount from Orders group by customerId
PARTITION BY: Perspektif Berbeza
Tidak seperti GROUP BY, PARTITION BY dikaitkan dengan fungsi tetingkap, seperti ROW_NUMBER(). Ia beroperasi dalam skop pengiraan tetingkap, mengubah suai cara fungsi ini mengira keputusannya. Pertimbangkan contoh berikut:
select row_number() over (partition by customerId order by orderId) as OrderNumberForThisCustomer from Orders
Perbezaan Utama yang Perlu Diperhatikan
Atas ialah kandungan terperinci KUMPULAN OLEH lwn. PARTITION OLEH: Apakah Perbezaan Utama dalam Pertanyaan Agregat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!