Impala - Kelompok Berdasarkan Klausul
Impala GROUP BY klausa digunakan dalam kolaborasi dengan pernyataan SELECT untuk mengatur data yang identik ke dalam kelompok.
Sintaksis
Berikut ini adalah sintaks klausa GROUP BY.
select data from table_name Group BY col_name;
Contoh
Asumsikan kita memiliki tabel bernama customers di database my_db dan isinya adalah sebagai berikut -
[quickstart.cloudera:21000] > select * from customers;
Query: select * from customers
+----+----------+-----+-----------+--------+
| id | name | age | address | salary |
+----+----------+-----+-----------+--------+
| 1 | Ramesh | 32 | Ahmedabad | 20000 |
| 2 | Khilan | 25 | Delhi | 15000 |
| 3 | kaushik | 23 | Kota | 30000 |
| 4 | Chaitali | 25 | Mumbai | 35000 |
| 5 | Hardik | 27 | Bhopal | 40000 |
| 6 | Komal | 22 | MP | 32000 |
+----+----------+-----+-----------+--------+
Fetched 6 row(s) in 0.51s
Anda bisa mendapatkan jumlah total gaji setiap pelanggan menggunakan kueri GROUP BY seperti yang ditunjukkan di bawah ini.
[quickstart.cloudera:21000] > Select name, sum(salary) from customers Group BY name;
Saat menjalankan, kueri di atas memberikan keluaran sebagai berikut.
Query: select name, sum(salary) from customers Group BY name
+----------+-------------+
| name | sum(salary) |
+----------+-------------+
| Ramesh | 20000 |
| Komal | 32000 |
| Hardik | 40000 |
| Khilan | 15000 |
| Chaitali | 35000 |
| kaushik | 30000 |
+----------+-------------+
Fetched 6 row(s) in 1.75s
Asumsikan bahwa tabel ini memiliki beberapa rekaman seperti yang diperlihatkan di bawah ini.
+----+----------+-----+-----------+--------+
| id | name | age | address | salary |
+----+----------+-----+-----------+--------+
| 1 | Ramesh | 32 | Ahmedabad | 20000 |
| 2 | Ramesh | 32 | Ahmedabad | 1000| |
| 3 | Khilan | 25 | Delhi | 15000 |
| 4 | kaushik | 23 | Kota | 30000 |
| 5 | Chaitali | 25 | Mumbai | 35000 |
| 6 | Chaitali | 25 | Mumbai | 2000 |
| 7 | Hardik | 27 | Bhopal | 40000 |
| 8 | Komal | 22 | MP | 32000 |
+----+----------+-----+-----------+--------+
Sekarang lagi, Anda bisa mendapatkan jumlah total gaji karyawan, dengan mempertimbangkan entri catatan yang berulang, menggunakan file Group By klausa seperti yang ditunjukkan di bawah ini.
Select name, sum(salary) from customers Group BY name;
Saat menjalankan, kueri di atas memberikan keluaran sebagai berikut.
Query: select name, sum(salary) from customers Group BY name
+----------+-------------+
| name | sum(salary) |
+----------+-------------+
| Ramesh | 21000 |
| Komal | 32000 |
| Hardik | 40000 |
| Khilan | 15000 |
| Chaitali | 37000 |
| kaushik | 30000 |
+----------+-------------+
Fetched 6 row(s) in 1.75s