Ringkasan :dalam tutorial ini, Anda akan mempelajari cara menggunakan SQLite GROUP BY klausa untuk membuat sekumpulan baris ringkasan dari sekumpulan baris.
Pengantar SQLite GROUP BY klausa
GROUP BY klausa adalah klausa opsional dari SELECT penyataan. GROUP BY klausa sekelompok baris yang dipilih menjadi baris ringkasan dengan nilai satu atau lebih kolom.
GROUP BY klausa mengembalikan satu baris untuk setiap grup. Untuk setiap grup, Anda dapat menerapkan fungsi agregat seperti MIN , MAX , SUM , COUNT , atau AVG untuk memberikan lebih banyak informasi tentang setiap grup.
Pernyataan berikut menggambarkan sintaks dari SQLite GROUP BY klausa.
SELECT
column_1,
aggregate_function(column_2)
FROM
table
GROUP BY
column_1,
column_2;
Code language: SQL (Structured Query Language) (sql) Cobalah
GROUP BY klausa muncul setelah FROM klausa dari SELECT penyataan. Jika pernyataan berisi WHERE klausa, GROUP BY klausa harus muncul setelah WHERE klausa.
Mengikuti GROUP BY klausa adalah kolom atau daftar kolom yang dipisahkan koma yang digunakan untuk menentukan grup.
SQLite GROUP BY contoh
Kami menggunakan tracks tabel dari database sampel untuk demonstrasi.
SQLite GROUP BY klausa dengan COUNT fungsi
Pernyataan berikut mengembalikan id album dan jumlah trek per album. Ini menggunakan GROUP BY klausa untuk mengelompokkan trek berdasarkan album dan menerapkan COUNT() fungsi untuk setiap grup.
SELECT
albumid,
COUNT(trackid)
FROM
tracks
GROUP BY
albumid;Code language: SQL (Structured Query Language) (sql) Cobalah
Anda dapat menggunakan ORDER BY klausa untuk mengurutkan grup sebagai berikut:
SELECT
albumid,
COUNT(trackid)
FROM
tracks
GROUP BY
albumid
ORDER BY COUNT(trackid) DESC;Code language: SQL (Structured Query Language) (sql) Cobalah
SQLite GROUP BY dan INNER JOIN klausa
Anda dapat meminta data dari beberapa tabel menggunakan INNER JOIN klausa, lalu gunakan GROUP BY klausa untuk mengelompokkan baris ke dalam kumpulan baris ringkasan.
Misalnya, pernyataan berikut bergabung dengan tracks tabel dengan albums tabel untuk mendapatkan judul album dan menggunakan GROUP BY klausa dengan COUNT berfungsi untuk mendapatkan jumlah track per album.

SELECT
tracks.albumid,
title,
COUNT(trackid)
FROM
tracks
INNER JOIN albums ON albums.albumid = tracks.albumid
GROUP BY
tracks.albumid;Code language: SQL (Structured Query Language) (sql) Cobalah
SQLite GROUP BY dengan HAVING klausa
Untuk memfilter grup, gunakan GROUP BY dengan HAVING ayat. Misalnya, untuk mendapatkan album yang memiliki lebih dari 15 lagu, gunakan pernyataan berikut:
SELECT
tracks.albumid,
title,
COUNT(trackid)
FROM
tracks
INNER JOIN albums ON albums.albumid = tracks.albumid
GROUP BY
tracks.albumid
HAVING COUNT(trackid) > 15;Code language: SQL (Structured Query Language) (sql) Cobalah
SQLite GROUP BY klausa dengan SUM contoh fungsi
Anda dapat menggunakan SUM berfungsi untuk menghitung total per grup. Misalnya, untuk mendapatkan total panjang dan byte untuk setiap album, Anda menggunakan SUM berfungsi untuk menghitung total milidetik dan byte.
SELECT
albumid,
SUM(milliseconds) length,
SUM(bytes) size
FROM
tracks
GROUP BY
albumid;Code language: SQL (Structured Query Language) (sql) Cobalah
SQLite GROUP BY dengan MAX , MIN , dan AVG fungsi
Pernyataan berikut mengembalikan id album, judul album, panjang maksimum, panjang minimum, dan panjang rata-rata trek di tracks tabel.
SELECT
tracks.albumid,
title,
min(milliseconds),
max(milliseconds),
round(avg(milliseconds),2)
FROM
tracks
INNER JOIN albums ON albums.albumid = tracks.albumid
GROUP BY
tracks.albumid;Code language: SQL (Structured Query Language) (sql) Cobalah
SQLite GROUP BY contoh beberapa kolom
Pada contoh sebelumnya, kita telah menggunakan satu kolom di GROUP BY ayat. SQLite memungkinkan Anda untuk mengelompokkan baris menurut beberapa kolom.
Misalnya, untuk mengelompokkan trek menurut jenis dan genre media, Anda menggunakan pernyataan berikut:
SELECT
MediaTypeId,
GenreId,
COUNT(TrackId)
FROM
tracks
GROUP BY
MediaTypeId,
GenreId;Code language: SQL (Structured Query Language) (sql) Cobalah
SQLite menggunakan kombinasi nilai MediaTypeId dan GenreId kolom sebagai grup misalnya, (1,1) dan (1,2). Kemudian menerapkan COUNT berfungsi untuk mengembalikan jumlah trek di setiap grup.
SQLite GROUP BY contoh tanggal
Lihat tabel faktur berikut dari database sampel:
Pernyataan berikut mengembalikan jumlah faktur menurut tahun.
SELECT
STRFTIME('%Y', InvoiceDate) InvoiceYear,
COUNT(InvoiceId) InvoiceCount
FROM
invoices
GROUP BY
STRFTIME('%Y', InvoiceDate)
ORDER BY
InvoiceYear;Code language: SQL (Structured Query Language) (sql) Berikut adalah outputnya:
Dalam contoh ini:
- Fungsi
STRFTIME('%Y', InvoiceDate)mengembalikan satu tahun dari string tanggal. GROUP BYklausa mengelompokkan faktur menurut tahun.- Fungsi
COUNT()mengembalikan jumlah faktur di setiap tahun (atau grup).
Dalam tutorial ini, Anda telah belajar bagaimana menggunakan SQLite GROUP BY klausa untuk mengelompokkan baris ke dalam kumpulan baris ringkasan.