MySQL không hỗ trợ Chức năng cửa sổ (*). Có một cái mà chúng ta gọi là "chức năng cửa sổ của một người nghèo" dưới dạng GROUP_CONCAT () .
Có rất nhiều thủ thuật sử dụng GROUP_CONCAT
để mô phỏng các chức năng của cửa sổ. Chúng không đẹp bằng (cú pháp) và đôi khi quá hạn chế. Tôi đã viết một vài. Xem bài đăng trên blog của tôi phàn nàn về các chức năng cửa sổ bị thiếu và liên kết với các giải pháp khác nhau dựa trên GROUP_CONCAT
.
Cụ thể, Chọn dữ liệu cột không tổng hợp cụ thể trong GROUP BY và SQL: chọn N bản ghi hàng đầu cho mỗi nhóm, một giải pháp khác có thể khiến bạn quan tâm và có thể giúp bạn bắt đầu.
Những điều bạn cần lưu ý về GROUP_CONCAT()
:
- Co thể sử dụng
DISTINCT
- Co thể sử dụng
ORDER BY ... ASC/DESC
- Có thể đặt
SEPARATOR
- Như bất kỳ hàm tổng hợp nào - nó loại bỏ các giá trị NULL; nhiều thủ thuật về điều đó.
(*) Hỗ trợ cho các chức năng của Window đã được thêm vào trong MySQL 8