CASE · SUM · GROUP BY · doanh thu theo tháng và kênh
SUM(CASE ...) xoay dòng thành cột
Tổng hợp có điều kiện: xoay dòng thành cột
Năm đơn đã thanh toán của quý 1 năm 2025 đi qua CASE: mỗi đơn đưa tiền vào cột online hoặc offline, cột còn lại nhận 0; GROUP BY tháng rồi SUM gom 5 dòng thành 3 dòng: tháng 1 online 699.000 và offline 26.990.000, tháng 2 online 5.780.000 và offline 7.881.000, tháng 3 online 0 và offline 1.380.000.
BƯỚC 1 · MỖI ĐƠN MỘT DÒNG
CTE don_hang, quý 1/2025
BƯỚC 2 · CASE TÁCH THEO KÊNH
tính trên từng dòng
BƯỚC 3 · GROUP BY + SUM
5 dòng gom còn 3 dòng
order_id
thang
channel
tien
1
1
online
699.000
2
1
offline
26.990.000
3
2
online
5.780.000
4
2
offline
7.881.000
6
3
offline
1.380.000
online
offline
699.000
0
0
26.990.000
5.780.000
0
0
7.881.000
0
1.380.000
thang
online
offline
1
699.000
26.990.000
2
5.780.000
7.881.000
3
0
1.380.000
SUM(CASE WHEN channel = 'online' THEN tien ELSE 0 END) AS online
Mỗi dòng góp tiền vào đúng một cột, cột kia nhận 0. SUM cộng các dòng cùng tháng.
© tiennhm