Kumpulan SQL mengikut Tarikh

Kumpulan Sql Mengikut Tarikh



Klausa SQL GROUP BY ialah alat yang berkuasa untuk mengumpulkan dan mengagregatkan data. Ia menyediakan cara terbaik untuk mengumpulkan data berdasarkan kriteria tertentu dan kemudian melakukan tindakan ke atas kumpulan yang terhasil.

Satu kes penggunaan biasa untuk GROUP BY ialah mengumpulkan mengikut tarikh. Dalam tutorial ini, kami akan mempelajari asas bekerja dengan klausa GROUP BY dan membincangkan cara menggunakannya untuk mengumpulkan data mengikut tarikh dalam SQL.







CATATAN: Kami menganggap bahawa anda mempunyai pemahaman asas tentang SQL. Untuk tujuan demonstrasi, kami menggunakan contoh dalam tutorial ini dengan MySQL 8. Walau bagaimanapun, anda boleh mengalihkan konsep tutorial ini secara bebas ke enjin pangkalan data berasaskan SQL yang lain.



Contoh Jadual:

Langkah pertama ialah menyediakan jadual asas dan data sampel untuk demonstrasi. Jika anda mempunyai jadual sedia ada yang ingin anda kerjakan, jangan ragu untuk melangkau bahagian ini.



Untuk membuat jadual, gunakan pertanyaan berikut:





CIPTA urus niaga JADUAL (
ID int bukan null auto_increment kunci utama,
Tarikh TARIKH,
jumlah PERPULUHAN ( 10 , 2 )
) ;


Sebaik sahaja anda membuat jadual, masukkan data sampel seperti yang ditunjukkan dalam berikut:

MASUKKAN KE DALAM urus niaga ( Tarikh , jumlah )
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 menambah data rawak pada jadual urus niaga. Kita boleh menggunakan pernyataan pilih untuk menunjukkan jadual yang terhasil seperti berikut:



pilih * daripada urus niaga;


Jadual Output:


Setelah kami menyediakan data, kami boleh meneruskan ke langkah seterusnya.

Kumpulan SQL mengikut Tarikh

Seperti yang anda boleh meneka, kami menggunakan klausa GROUP BY untuk membahagikan data dalam jadual tertentu berdasarkan nilai tertentu. Sintaks klausa adalah seperti berikut:

PILIH lajur1, lajur2, ...
DARI table_name
KUMPULAN MENGIKUT lajur1, lajur2, ...;


Dalam sintaks sebelumnya, kami menggunakan klausa GROUP BY untuk menentukan lajur yang anda ingin kumpulkan datanya.

Daripada jadual sebelumnya, kita boleh menggunakan lajur tarikh untuk mengumpulkan data seperti yang ditunjukkan dalam pertanyaan berikut:

PILIH Tarikh , JUMLAH ( jumlah ) sebagai jumlah keseluruhan
DARIPADA urus niaga
KUMPULAN OLEH Tarikh ;


Pertanyaan sebelumnya melakukan pengiraan asas dan menambah jumlah amaun untuk setiap hari menggunakan fungsi sum(). Kami kemudian mengumpulkan data berdasarkan nilai tarikh. Jadual yang terhasil adalah seperti berikut:

Format Tarikh

Kadangkala, kita mungkin perlu memformat tarikh dan menjadikannya lebih mudah dibaca. Contohnya adalah seperti berikut:

PILIH DATE_FORMAT ( Tarikh , '%m/%d/%Y' ) sebagai tarikh_format, SUM ( jumlah ) sebagai jumlah keseluruhan
DARIPADA urus niaga
KUMPULAN OLEH Tarikh ;


Ini harus mengembalikan nilai tarikh dalam format yang ditentukan seperti berikut:

Julat Tarikh Penapis SQL

Kami juga boleh menapis hasil yang ditetapkan oleh julat tarikh menggunakan klausa WHERE. Contohnya adalah seperti berikut:

PILIH DATE_FORMAT ( Tarikh , '%m/%d/%Y' ) sebagai tarikh_format, SUM ( jumlah ) sebagai jumlah keseluruhan
DARIPADA urus niaga
DI MANA Tarikh ANTARA '2023-01-01' DAN '2023-01-15'
KUMPULAN OLEH Tarikh ;


Jadual yang terhasil ditunjukkan seperti berikut:


Itulah anda mempunyainya! Satu cara untuk mengumpulkan data daripada jadual tertentu berdasarkan nilai tarikh.

Kesimpulan

Tutorial ini meneroka asas bekerja dengan klausa GROUP BY dalam SQL untuk mengisih data berdasarkan nilai tertentu. Ini membolehkan kami merangkumi cara menggunakan klausa GROUP BY untuk membahagikan data berdasarkan nilai tarikh.