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
Lepaskan: 2025-01-17 21:27:11
asal
637 orang telah melayarinya

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

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

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!

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