Memahami Perbezaan Antara PARTITION BY dan GROUP BY dalam SQL
Pembahagian dan pengumpulan ialah operasi penting dalam SQL untuk pengagregatan dan pemprosesan data. Walaupun kedua-dua PARTITION BY dan GROUP BY melibatkan pembahagian dan pengagregatan data, ia berbeza dengan ketara dalam kefungsian dan aplikasinya.
PARTITITION BY: Partitioning for Window Function
PARTITION BY ialah digunakan terutamanya bersama dengan fungsi tetingkap, seperti ROW_NUMBER(), yang berfungsi pengiraan berdasarkan partition yang ditentukan. Ia membahagikan data kepada kumpulan berbeza berdasarkan lajur yang ditentukan, dikenali sebagai kunci partition. Setiap partition beroperasi secara bebas, membenarkan fungsi tetingkap untuk mengira nilai relatif kepada partition masing-masing.
Sebagai contoh, pertanyaan berikut menggunakan PARTITION BY untuk menetapkan nombor berjujukan kepada baris dalam setiap ID pelanggan:
SELECT ROW_NUMBER() OVER (PARTITION BY customerId ORDER BY orderId) AS OrderNumberForThisCustomer FROM Orders;
KUMPULAN OLEH: Mengagregatkan Data ke dalam Kumpulan
KUMPULAN OLEH, sebaliknya, direka bentuk untuk mengagregatkan data merentas berbilang baris berdasarkan nilai biasa. Ia mengumpulkan baris dengan nilai yang sepadan dalam lajur yang ditentukan, dirujuk sebagai kunci kumpulan. Fungsi pengagregatan, seperti COUNT(*) atau SUM(), kemudian digunakan pada setiap kumpulan.
Pertanyaan berikut menggunakan GROUP BY untuk mengira jumlah pesanan bagi setiap pelanggan:
SELECT customerId, COUNT(*) AS orderCount FROM Orders GROUP BY customerId;
Perbezaan Utama
Perbezaan utama antara PARTITION BY dan GROUP BY boleh diringkaskan seperti berikut:
Atas ialah kandungan terperinci PARTITION BY vs. GROUP BY dalam SQL: Apakah Perbezaannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!