Nhóm SQL theo ngày

Nhom Sql Theo Ngay



Mệnh đề SQL GROUP BY là một công cụ mạnh để nhóm và tổng hợp dữ liệu. Nó cung cấp một cách tuyệt vời để nhóm dữ liệu dựa trên các tiêu chí cụ thể và sau đó thực hiện một hành động trên các nhóm kết quả.

Một trường hợp sử dụng phổ biến cho NHÓM THEO là nhóm theo ngày. Trong hướng dẫn này, chúng ta sẽ tìm hiểu các nguyên tắc cơ bản khi làm việc với mệnh đề GROUP BY và thảo luận cách sử dụng nó để nhóm dữ liệu theo ngày trong SQL.







GHI CHÚ: Chúng tôi giả định rằng bạn đã có hiểu biết cơ bản về SQL. Đối với mục đích trình diễn, chúng tôi sử dụng các ví dụ trong hướng dẫn này với MySQL 8. Tuy nhiên, bạn có thể tự do chuyển các khái niệm của hướng dẫn này sang các công cụ cơ sở dữ liệu dựa trên SQL khác.



Bảng mẫu:

Bước đầu biết lập bảng cơ sở và số liệu mẫu để trình diễn. Nếu bạn có sẵn một bảng mà bạn muốn làm việc cùng, vui lòng bỏ qua phần này.



Để tạo bảng, sử dụng truy vấn sau:





TẠO BẢNG giao dịch (
nhận dạng khóa chính int không null auto_increment,
ngày NGÀY,
số DECIMAL ( 10 , 2 )
) ;


Khi bạn tạo bảng, hãy chèn dữ liệu mẫu như sau:

CHÈN VÀO giao dịch ( ngày , số lượng )
GIÁ TRỊ
( '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 ) ;


Điều này sẽ thêm dữ liệu ngẫu nhiên vào bảng giao dịch. Chúng ta có thể sử dụng câu lệnh select để hiển thị bảng kết quả như sau:



lựa chọn * từ các giao dịch;


Bảng đầu ra:


Khi chúng tôi đã chuẩn bị dữ liệu, chúng tôi có thể tiến hành bước tiếp theo.

Nhóm SQL theo ngày

Như bạn có thể đoán, chúng tôi sử dụng mệnh đề GROUP BY để phân vùng dữ liệu trong một bảng nhất định dựa trên các giá trị cụ thể. Cú pháp mệnh đề như sau:

CHỌN cột1, cột2, ...
TỪ tên_bảng
NHÓM THEO cột1, cột2,...;


Trong cú pháp trước, chúng tôi sử dụng mệnh đề GROUP BY để chỉ định các cột mà bạn muốn nhóm dữ liệu theo.

Từ bảng trước, chúng ta có thể sử dụng cột ngày để nhóm dữ liệu như được hiển thị trong truy vấn sau:

LỰA CHỌN ngày , TỔNG ( số lượng ) BẰNG tổng cộng
TỪ giao dịch
NHÓM THEO ngày ;


Truy vấn trước đó thực hiện các phép tính cơ bản và cộng tổng số tiền cho mỗi ngày bằng cách sử dụng hàm sum(). Sau đó, chúng tôi nhóm dữ liệu dựa trên các giá trị ngày. Bảng kết quả như sau:

định dạng ngày

Đôi khi, chúng tôi có thể cần định dạng ngày và làm cho nó dễ đọc hơn. Một ví dụ như sau:

CHỌN NGÀY_FORMAT ( ngày , '%m/%d/%Y' ) BẰNG formatted_date, SUM ( số lượng ) BẰNG tổng cộng
TỪ giao dịch
NHÓM THEO ngày ;


Điều này sẽ trả về các giá trị ngày ở định dạng được chỉ định như sau:

Phạm vi ngày của bộ lọc SQL

Chúng tôi cũng có thể lọc tập hợp kết quả theo phạm vi ngày bằng cách sử dụng mệnh đề WHERE. Một ví dụ như sau:

CHỌN NGÀY_FORMAT ( ngày , '%m/%d/%Y' ) BẰNG formatted_date, SUM ( số lượng ) BẰNG tổng cộng
TỪ giao dịch
Ở ĐÂU ngày GIỮA '2023-01-01' '2023-01-15'
NHÓM THEO ngày ;


Bảng kết quả được hiển thị như sau:


Ở đó bạn có nó! Một cách để nhóm dữ liệu từ một bảng nhất định dựa trên các giá trị ngày tháng.

Phần kết luận

Hướng dẫn này khám phá các nguyên tắc cơ bản khi làm việc với mệnh đề GROUP BY trong SQL để sắp xếp dữ liệu dựa trên các giá trị cụ thể. Điều này cho phép chúng tôi giới thiệu cách sử dụng mệnh đề GROUP BY để phân chia dữ liệu dựa trên các giá trị ngày.