Bảng orders(id, channel, status) lưu các đơn hàng. Cột channel là kênh bán (ví dụ 'Web', 'App'), status nhận một trong ba giá trị 'Moi', 'Giao', 'Huy'.
Hãy xoay (PIVOT) để mỗi dòng là một kênh, ba cột Moi, Giao, Huy là số lượng đơn của kênh đó ở từng trạng thái (đếm số đơn). Trạng thái nào không có đơn thì điền 0. Sắp xếp theo channel tăng dần.
Yêu cầu: dùng toán tử PIVOT với hàm COUNT.
Bảng orders đã được tạo sẵn. Cột: id INT, channel NVARCHAR, status NVARCHAR(10) (thuộc {Moi,Giao,Huy}).
Số đơn ≤30.
Mỗi kênh một dòng gồm 4 cột (cách nhau bởi TAB): channel, Moi, Giao, Huy; theo thứ tự channel tăng dần.
Ví dụ:
Đầu vào:
CREATE TABLE orders(id INT, channel NVARCHAR(20), status NVARCHAR(10));
INSERT INTO orders(id,channel,status) VALUES (1,N'Web',N'Moi'),(2,N'Web',N'Giao'),(3,N'Web',N'Moi'),(4,N'App',N'Huy');
Đầu ra:
App 0 0 1
Web 2 1 0
Giải thích:
Đang tải editor...