Database
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Database

Truy vấn SQL để so sánh doanh số bán sản phẩm theo tháng

Đôi khi, bạn sẽ cần so sánh song song doanh số bán sản phẩm theo tháng để xác định xem chúng đang hoạt động như thế nào. Đây là truy vấn SQL để so sánh doanh số bán sản phẩm theo tháng, nếu dữ liệu của bạn được lưu trữ trong cơ sở dữ liệu MySQL / PostgreSQL / SQL Server.

Truy vấn SQL để so sánh doanh số bán sản phẩm theo tháng

Giả sử bạn có một bảng bán hàng (ngày_đặt_hàng, sản phẩm, chương trình giảm giá) chứa doanh số hàng ngày của tất cả các sản phẩm của bạn.

mysql> create table sales(product varchar(255),order_date date,sale int);

mysql> insert into sales values('Pen','2020-01-01',20),('Paper','2020-01-02',25),
('Paper','2020-01-03',15),('Pen','2020-01-04',30),('Paper','2020-01-05',20)
...;

mysql> select * from sales;
+---------+------------+------+
| product | order_date | sale |
+---------+------------+------+
| Pen     | 2020-01-01 |   20 |
| Paper   | 2020-01-02 |   25 |
| Paper   | 2020-01-03 |   15 |
| Pen     | 2020-01-04 |   30 |
| Pen     | 2020-01-05 |   20 |
| ...     | ...        |   ...|
+---------+------------+------+

Truy vấn SQL để so sánh doanh số bán sản phẩm theo tháng

Trong hầu hết các trường hợp, bạn sẽ có các hàng bán hàng cho tất cả các sản phẩm của mình bên dưới sản phẩm kia, trong các hàng riêng biệt, thay vì các cột riêng biệt. Nếu bạn muốn so sánh doanh số bán sản phẩm theo tháng, bạn cần tổng hợp dữ liệu này theo sản phẩm cột.

Đây là truy vấn để xoay vòng bảng bán hàng của bạn theo sản phẩm cột. Chúng ta sẽ xem xét nó một cách chi tiết

mysql> SELECT date_format(order_date,'%b-%y') as order_date,
       sum(IF(product='Pen', sale, NULL)) AS Pen,
       sum(IF(product='Paper', sale, NULL)) AS Paper
       FROM sales
       GROUP BY year(order_date),month(order_date),date_format(order_date,'%b-%y')
       ;
+------------+------+-------+
| order_date | Pen  | Paper |
+------------+------+-------+
| Jan-20     |  200 |   320 |
| Feb-20     |  250 |   220 |
| Mar-20     |  230 |   290 |
| Apr-20     |  190 |   210 |
| May-20     |  210 |   230 |
| Jun-20     |  320 |   120 |
| Jul-20     |  330 |   220 |
| Aug-20     |  210 |   260 |
| Sep-20     |  120 |   220 |
| Oct-20     |  280 |   120 |
| Nov-20     |  290 |   280 |
| Dec-20     |  200 |   320 |
+------------+------+-------+

Trong truy vấn trên, chúng tôi sử dụng hàm DATE_FORMAT để lấy tên tháng từ order_date cột. Hơn nữa, chúng tôi sử dụng câu lệnh IF để tạo bảng tổng hợp theo product cột. Trong trường hợp này, đối với mỗi hàng, câu lệnh IF sẽ kiểm tra giá trị của cột sản phẩm và thêm giá trị bán vào cột có nhãn 'Bút' hoặc 'Giấy' tùy thuộc vào tên sản phẩm. Chúng tôi cũng NHÓM THEO tên tháng, để nhận doanh số bán sản phẩm hàng tháng, từ các đơn đặt hàng hàng ngày.

Sau khi bạn tính toán doanh số hàng tháng cho mỗi sản phẩm, bạn có thể sử dụng công cụ biểu đồ để vẽ biểu đồ đó trên biểu đồ đường, như được hiển thị bên dưới. Dưới đây là ví dụ về biểu đồ đường được tạo bằng Ubiq.

Bạn có biết rằng bạn có thể tạo bảng tổng hợp trong Ubiq chỉ bằng cách kéo và thả không?

Nếu bạn muốn tạo biểu đồ, trang tổng quan và báo cáo từ cơ sở dữ liệu MySQL / PostgreSQL / SQL Server, bạn có thể thử Ubiq. Chúng tôi cung cấp bản dùng thử miễn phí 14 ngày.

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bộ vấn đề 1 - Xác định các thực thể

  2. Cách bật Nhật ký chung và Nhật ký lỗi trong AWS RDS

  3. Poker, Blackjack, Belot và Préférence có liên quan gì với Cơ sở dữ liệu?

  4. SQL IN so với SQL EXISTS

  5. Tại sao Học Cassandra với Hadoop?