Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Kelompokkan Baris Menggunakan Group By Clause Di MySQL

Tutorial ini adalah bagian dari seri Belajar Query SQL Dasar Menggunakan MySQL. Dalam tutorial ini, kita akan membahas query SQL untuk melakukan pengelompokan baris tabel di MySQL menggunakan klausa GROUP BY dengan fungsi agregat. Anda juga dapat mengikuti Menggunakan Fungsi Agregat (SUM, AVG, MAX, MIN, COUNT, DISTINCT) di MySQL untuk mempelajari fungsi agregat.

Kelompokkan Berdasarkan Kueri

GROUP BY klausa dapat digunakan untuk melakukan pengelompokan baris tabel. Ini juga dapat digunakan dengan fungsi agregat untuk menghasilkan laporan dan mengumpulkan data statistik.

# GROUP BY - Syntax
SELECT column_1, column_2, ..., [<aggregate function> AS <column>] FROM `table_name` GROUP BY column_1, column_2, ...;

Penjelasan Kueri

GROUP BY klausa dapat digunakan untuk mengelompokkan baris dengan menentukan kolom untuk membentuk himpunan baris.

Kita dapat menggunakan fungsi agregat untuk secara efektif menggunakan klausa GROUP BY untuk menghasilkan laporan dan mengumpulkan data statistik.

Pengelompokan dapat diterapkan pada beberapa kolom di mana kolom pertama akan membentuk grup utama dan kolom berikutnya akan membentuk sub-grup.

Contoh

Bagian ini memberikan contoh untuk melakukan pengelompokan menggunakan klausa GROUP BY dengan dan tanpa fungsi agregasi. Gunakan kueri yang disebutkan di bawah ini untuk membuat tabel pengguna yang memiliki kolom id, nama depan, nama belakang, usia, dan aktif untuk menyimpan data pengguna.

# Create the User Table
CREATE TABLE `enterprise`.`user` (
`user_id` BIGINT NOT NULL,
`first_name` VARCHAR(45) ,
`last_name` VARCHAR(45),
`age` SMALLINT(6) NOT NULL DEFAULT 0,
`active` TINYINT(1) NOT NULL DEFAULT 0,
PRIMARY KEY (`user_id`));

Kueri yang disebutkan di bawah ini dapat digunakan untuk menyisipkan data uji ke tabel pengguna.

# Insert Rows - All Columns
INSERT INTO `user` ( `user_id`, `first_name`, `last_name`, `age`, `active` ) VALUES
( 1, 'John', 'Smith', 18, 1 ),
( 2, 'Rick', 'Jones', 19, 1 ),
( 3, 'John', 'Ponting', 16, 0 ),
( 4, 'Harsh', 'Upadhyay', 20, 1 ),
( 5, 'Tajwinder', 'Singh', 18, 0 );

Kueri yang disebutkan di atas akan menyisipkan 5 baris dalam tabel yang memiliki id, nama depan, nama belakang, dan kolom aktif untuk mewakili 5 pengguna yang berbeda.

Sekarang kita akan menggunakan klausa GROUP BY tanpa fungsi agregat untuk mengelompokkan baris. Hal ini dapat dilakukan dengan menggunakan klausa GROUP BY di MySQL seperti yang ditunjukkan di bawah ini.

# GROUP BY - Generate the set of active values
SELECT active from user GROUP BY active;

# Result
1
0

# GROUP BY - Generate the set of first name
SELECT first_name from user GROUP BY first_name;

# Result
John
Rick
Harsh
Tajwinder

Kueri yang disebutkan di atas mengembalikan hasil yang ditetapkan dengan mengelompokkan baris menggunakan klausa GROUP BY. Sekarang kita akan mengelompokkan baris dengan fungsi agregat seperti yang ditunjukkan di bawah ini.

# GROUP BY - Get the maximum age of all users with specific first name
SELECT first_name, MAX(age) AS max_age from user GROUP BY first_name;

# Result
John 18
Rick 19
Harsh 20
Tajwinder 18

# GROUP BY - Get the average age of all users with specific first name
SELECT first_name, AVG(age) AS avg_age from user GROUP BY first_name;

# Result
John 17.0000
Rick 19.0000
Harsh 20.0000
Tajwinder 18.0000

Ini adalah bagaimana kita dapat menggunakan klausa GROUP BY dengan dan tanpa fungsi agregat untuk mengelompokkan baris tabel untuk kolom tertentu.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Apakah transaksi bersarang diperbolehkan di MySQL?

  2. Pilih baris dengan tanggal terbaru per pengguna

  3. SQL Buddy – Alat Administrasi MySQL Berbasis Web

  4. Penyesuaian Kinerja Kueri MySQL

  5. ORDER BY tanggal dan waktu SEBELUM GROUP BY nama di mysql