Rumah > pangkalan data > SQL > Bagaimanakah saya menggunakan Klausa Kumpulan dalam SQL untuk Kumpulan Data?

Bagaimanakah saya menggunakan Klausa Kumpulan dalam SQL untuk Kumpulan Data?

Karen Carpenter
Lepaskan: 2025-03-13 13:51:31
asal
375 orang telah melayarinya

Bagaimanakah saya menggunakan Klausa Kumpulan dalam SQL untuk Kumpulan Data?

GROUP BY klausa dalam SQL digunakan untuk mengumpulkan baris yang mempunyai nilai yang sama dalam lajur yang ditentukan ke dalam baris ringkasan, seperti "Cari bilangan pelanggan di setiap negara". Ia sering digunakan dengan fungsi agregat (seperti Count, Max, Min, Sum, AVG) untuk melakukan pengiraan pada setiap kumpulan data.

Untuk menggunakan GROUP BY , anda biasanya menyusun pertanyaan SQL anda seperti berikut:

 <code class="sql">SELECT column_name(s), aggregate_function(column_name) FROM table_name WHERE condition GROUP BY column_name(s) ORDER BY column_name(s);</code>
Salin selepas log masuk

Sebagai contoh, jika anda mempunyai jadual bernama Orders dengan lajur CustomerID , OrderDate , dan OrderAmount , dan anda ingin mencari jumlah jumlah pesanan bagi setiap pelanggan, anda akan menggunakan:

 <code class="sql">SELECT CustomerID, SUM(OrderAmount) AS TotalOrderAmount FROM Orders GROUP BY CustomerID;</code>
Salin selepas log masuk

Pertanyaan ini memaparkan jadual Orders oleh CustomerID dan mengira jumlah OrderAmount untuk setiap pelanggan.

Apakah beberapa fungsi agregat biasa yang digunakan dengan kumpulan oleh SQL?

Fungsi agregat dalam SQL melakukan pengiraan pada satu set nilai dan mengembalikan satu nilai. Mereka biasanya digunakan dengan GROUP BY klausa untuk meringkaskan data dalam setiap kumpulan. Berikut adalah beberapa fungsi agregat biasa:

  • Kiraan () : Mengira bilangan baris dalam kumpulan. Sebagai contoh, COUNT(CustomerID) akan mengira bilangan pelanggan.
  • SUM () : Mengira jumlah set nilai. Sebagai contoh, SUM(OrderAmount) akan mengira jumlah jumlah pesanan.
  • Avg () : Mengira purata satu set nilai. Sebagai contoh, AVG(OrderAmount) akan mengira jumlah pesanan purata.
  • Min () : Mengembalikan nilai terkecil dalam satu set nilai. Sebagai contoh, MIN(OrderAmount) akan mendapati jumlah pesanan terkecil.
  • Max () : Mengembalikan nilai terbesar dalam satu set nilai. Sebagai contoh, MAX(OrderAmount) akan mendapati jumlah pesanan terbesar.

Fungsi -fungsi ini boleh digabungkan dalam pelbagai cara dengan GROUP BY dengan menghasilkan laporan dan ringkasan yang berwawasan.

Bolehkah kumpulan dengan digunakan dengan pelbagai lajur dalam SQL, dan jika ya, bagaimana?

Ya, GROUP BY boleh digunakan dengan pelbagai lajur dalam SQL. Apabila anda berkumpul dengan pelbagai lajur, hasilnya dikelompokkan oleh gabungan nilai -nilai dalam lajur tersebut. Ini membolehkan analisis data yang lebih terperinci.

Sintaks untuk pengelompokan oleh pelbagai lajur hanya menyenaraikan lajur dalam GROUP BY klausa, dipisahkan oleh koma:

 <code class="sql">SELECT column1, column2, aggregate_function(column3) FROM table_name GROUP BY column1, column2;</code>
Salin selepas log masuk

Sebagai contoh, jika anda ingin mencari jumlah jumlah pesanan setiap pelanggan setiap tahun, anda mungkin menggunakan:

 <code class="sql">SELECT CustomerID, YEAR(OrderDate) AS OrderYear, SUM(OrderAmount) AS TotalOrderAmount FROM Orders GROUP BY CustomerID, YEAR(OrderDate);</code>
Salin selepas log masuk

Kumpulan pertanyaan ini Jadual Orders oleh CustomerID dan Tahun OrderDate , mengira jumlah jumlah pesanan bagi setiap kombinasi unik pelanggan dan tahun.

Bagaimanakah klausa yang berfungsi bersempena dengan kumpulan oleh SQL?

Klausa HAVING digunakan dalam kombinasi dengan GROUP BY klausa untuk menapis kumpulan berdasarkan keadaan yang ditentukan. Walaupun klausa WHERE menapis baris individu sebelum pengagregatan berlaku, klausa HAVING penapis data yang dikelompokkan selepas pengagregatan telah berlaku.

Struktur tipikal pertanyaan menggunakan kedua -dua GROUP BY dan HAVING adalah seperti berikut:

 <code class="sql">SELECT column_name(s), aggregate_function(column_name) FROM table_name WHERE condition GROUP BY column_name(s) HAVING condition ORDER BY column_name(s);</code>
Salin selepas log masuk

Sebagai contoh, jika anda ingin mencari jumlah jumlah pesanan bagi setiap pelanggan, tetapi hanya termasuk pelanggan dengan jumlah pesanan yang lebih besar daripada 1000, anda akan menggunakan:

 <code class="sql">SELECT CustomerID, SUM(OrderAmount) AS TotalOrderAmount FROM Orders GROUP BY CustomerID HAVING SUM(OrderAmount) > 1000;</code>
Salin selepas log masuk

Dalam pertanyaan ini, GROUP BY klausa kumpulan perintah oleh CustomerID dan mengira jumlah jumlah pesanan bagi setiap pelanggan. Klausa HAVING kemudian menapis keputusan untuk memasukkan hanya kumpulan (pelanggan) di mana jumlah jumlah pesanan lebih besar daripada 1000.

Atas ialah kandungan terperinci Bagaimanakah saya menggunakan Klausa Kumpulan dalam SQL untuk Kumpulan Data?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan