Rumah > pangkalan data > tutorial mysql > PARTITION BY vs. GROUP BY dalam SQL: Apakah Perbezaannya?

PARTITION BY vs. GROUP BY dalam SQL: Apakah Perbezaannya?

DDD
Lepaskan: 2025-01-06 06:30:39
asal
487 orang telah melayarinya

PARTITION BY vs. GROUP BY in SQL: What's the Difference?

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;
Salin selepas log masuk

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;
Salin selepas log masuk

Perbezaan Utama

Perbezaan utama antara PARTITION BY dan GROUP BY boleh diringkaskan seperti berikut:

  • Tujuan: PARTITION BY partition data untuk fungsi tetingkap, manakala GROUP BY mengagregatkan data ke dalam kumpulan.
  • Kesan pada Keputusan: PARTITION BY tidak mengurangkan bilangan baris yang dikembalikan, manakala GROUP BY biasanya mengurangkan bilangan baris dengan mengumpulkan dan mengagregatkan.
  • Fungsi Tetingkap: PARTITION BY serasi dengan fungsi tetingkap, membolehkan pengiraan dalam partition. GROUP BY tidak menyokong fungsi tetingkap.
  • Fleksibiliti: PARTITION BY membenarkan pembahagian fleksibel berdasarkan berbilang lajur, manakala GROUP BY terhad kepada pengumpulan berdasarkan lajur yang ditentukan.

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan