Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Menggunakan Klausa GROUP BY SQL untuk Mengagregatkan Data ke dalam Julat?

Bagaimanakah Saya Boleh Menggunakan Klausa GROUP BY SQL untuk Mengagregatkan Data ke dalam Julat?

Barbara Streisand
Barbara Streisandasal
2025-01-17 21:27:11577semak imbas

How Can I Use SQL's GROUP BY Clause to Aggregate Data into Ranges?

SQL GROUP BY untuk Pengagregatan Julat Data

Menganalisis pengedaran data merentas pelbagai julat ialah aspek penting dalam analisis data. Klausa GROUP BY SQL menawarkan mekanisme yang teguh untuk mengagregatkan data ke dalam kumpulan yang dipratentukan, memudahkan penjanaan jadual ringkasan dan laporan yang ringkas.

Mewujudkan Kumpulan Berasaskan Julat

Untuk mengkategorikan data ke dalam julat tertentu, kami memanfaatkan pernyataan CASE WHEN untuk menetapkan nilai pada lajur baharu berdasarkan syarat yang ditetapkan. Lajur yang baru dibuat ini kemudiannya berfungsi sebagai asas untuk mengumpulkan data menggunakan klausa GROUP BY.

Contoh Ilustrasi: Pengumpulan Julat Skor

Mari kita pertimbangkan senario di mana kita perlu menentukan kekerapan skor dalam selang waktu tertentu (cth., 0-9, 10-19, 20-29). Pertanyaan berikut membina lajur baharu yang mewakili julat skor ini:

<code class="language-sql">SELECT
  CASE
    WHEN score BETWEEN 0 AND 9 THEN '0-9'
    WHEN score BETWEEN 10 AND 19 THEN '10-19'
    ELSE '20-99'
  END AS score_range
FROM scores;</code>

Pertanyaan ini menjana lajur score_range, memperuntukkan setiap skor kepada julat sepadannya.

Penggabungan dengan GROUP BY

Untuk mengira kiraan markah dalam setiap julat, kami menggunakan fungsi agregat COUNT(*) bersama dengan klausa GROUP BY. Pertanyaan di bawah mencapai ini:

<code class="language-sql">SELECT
  score_range,
  COUNT(*) AS score_count
FROM (
  SELECT
    CASE
      WHEN score BETWEEN 0 AND 9 THEN '0-9'
      WHEN score BETWEEN 10 AND 19 THEN '10-19'
      ELSE '20-99'
    END AS score_range
  FROM scores
) AS ranged_scores
GROUP BY
  score_range;</code>

Output

Jadual yang terhasil memaparkan dua lajur: score_range dan score_count, memberikan gambaran keseluruhan yang jelas tentang pengagihan skor merentas julat yang ditentukan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggunakan Klausa GROUP BY SQL untuk Mengagregatkan Data ke dalam Julat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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