Klausa SQL GROUP BY adalah alat yang ampuh untuk mengelompokkan dan menggabungkan data. Ini memberikan cara terbaik untuk mengelompokkan data berdasarkan kriteria tertentu dan kemudian melakukan tindakan pada grup yang dihasilkan.
Salah satu kasus penggunaan umum untuk GROUP BY adalah pengelompokan berdasarkan tanggal. Dalam tutorial ini, kita akan mempelajari dasar-dasar bekerja dengan klausa GROUP BY dan mendiskusikan cara menggunakannya untuk mengelompokkan data menurut tanggal dalam SQL.
CATATAN: Kami berasumsi bahwa Anda memiliki pemahaman dasar tentang SQL. Untuk tujuan demonstrasi, kami menggunakan contoh dalam tutorial ini dengan MySQL 8. Namun, Anda dapat dengan bebas memindahkan konsep tutorial ini ke mesin basis data berbasis SQL lainnya.
Tabel Contoh:
Langkah pertama adalah menyiapkan tabel dasar dan data sampel untuk demonstrasi. Jika Anda memiliki tabel yang ingin Anda kerjakan, silakan lewati bagian ini.
Untuk membuat tabel, gunakan kueri berikut:
BUAT TABEL transaksi (
pengenal int bukan null kunci utama auto_increment,
tanggal TANGGAL,
jumlah DECIMAL ( 10 , 2 )
) ;
Setelah Anda membuat tabel, masukkan data sampel seperti yang ditunjukkan berikut ini:
NILAI
( '2023-01-01' , 100.00 ) ,
( '2023-01-02' , 50.00 ) ,
( '2023-01-03' , 75.00 ) ,
( '2023-01-04' , 200.00 ) ,
( '2023-01-05' , 150.00 ) ,
( '2023-01-06' , 175.00 ) ,
( '2023-01-07' , 50.00 ) ,
( '2023-01-08' , 100.00 ) ,
( '2023-01-09' , 25.00 ) ,
( '2023-01-10' , 75.00 ) ,
( '2023-01-11' , 150.00 ) ,
( '2023-01-12' , 200.00 ) ,
( '2023-01-13' , 250.00 ) ,
( '2023-01-14' , 175.00 ) ,
( '2023-01-15' , 150.00 ) ,
( '2023-01-16' , 100.00 ) ,
( '2023-01-17' , 50.00 ) ,
( '2023-01-18' , 75.00 ) ;
Ini harus menambahkan data acak ke tabel transaksi. Kita dapat menggunakan pernyataan pilih untuk menampilkan tabel yang dihasilkan sebagai berikut:
Pilih * dari transaksi;
Tabel Keluaran:
Setelah kita menyiapkan data, kita dapat melanjutkan ke langkah berikutnya.
Grup SQL berdasarkan Tanggal
Seperti yang bisa Anda tebak, kami menggunakan klausa GROUP BY untuk mempartisi data dalam tabel tertentu berdasarkan nilai tertentu. Sintaks klausa adalah sebagai berikut:
PILIH kolom1, kolom2, ...DARI nama_tabel
GROUP BY kolom1, kolom2, ...;
Dalam sintaks sebelumnya, kami menggunakan klausa GROUP BY untuk menentukan kolom yang ingin Anda gunakan untuk mengelompokkan data.
Dari tabel sebelumnya, kita dapat menggunakan kolom tanggal untuk mengelompokkan data seperti yang diperlihatkan dalam kueri berikut:
PILIH tanggal , JUMLAH ( jumlah ) sebagai jumlah totalDARI transaksi
KELOMPOK OLEH tanggal ;
Kueri sebelumnya melakukan perhitungan dasar dan menambahkan jumlah total untuk setiap hari menggunakan fungsi sum() . Kami kemudian mengelompokkan data berdasarkan nilai tanggal. Tabel yang dihasilkan adalah sebagai berikut:
Format Tanggal
Terkadang, kita mungkin perlu memformat tanggal dan membuatnya lebih mudah dibaca. Contohnya adalah sebagai berikut:
PILIH TANGGAL_FORMAT ( tanggal , '%m/%d/%Y' ) sebagai tanggal_format, JUMLAH ( jumlah ) sebagai jumlah totalDARI transaksi
KELOMPOK OLEH tanggal ;
Ini harus mengembalikan nilai tanggal dalam format yang ditentukan sebagai berikut:
Rentang Tanggal Filter SQL
Kami juga dapat memfilter hasil yang ditetapkan oleh rentang tanggal menggunakan klausa WHERE. Contohnya adalah sebagai berikut:
PILIH TANGGAL_FORMAT ( tanggal , '%m/%d/%Y' ) sebagai tanggal_format, JUMLAH ( jumlah ) sebagai jumlah totalDARI transaksi
DI MANA tanggal DI ANTARA '2023-01-01' DAN '2023-01-15'
KELOMPOK OLEH tanggal ;
Tabel yang dihasilkan ditunjukkan berikut ini:
Itu dia! Cara mengelompokkan data dari tabel tertentu berdasarkan nilai tanggal.
Kesimpulan
Tutorial ini mengeksplorasi dasar-dasar bekerja dengan klausa GROUP BY di SQL untuk mengurutkan data berdasarkan nilai tertentu. Ini memungkinkan kami untuk membahas cara menggunakan klausa GROUP BY untuk membagi data berdasarkan nilai tanggal.