SQLite
 sql >> Teknologi Basis Data >  >> RDS >> SQLite

Grup SQLite Oleh

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 BY klausa 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.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Memesan berdasarkan Tanggal di SQLite

  2. Bagaimana Fungsi Time() Bekerja di SQLite

  3. Cara membuat database SQLite kosong

  4. Bagaimana SQLite Ltrim() Bekerja

  5. Gunakan Firebase DB dengan DB lokal