Các cột mà bạn đã thêm vào mệnh đề SELECT mà không có hàm tổng hợp phải nằm trong mệnh đề GROUP BY.
Để làm rõ hơn một chút:
Lấy ví dụ sau:
Bạn có TransactionID, AccountID, TransactionAmount, TransactionDate trong Điều khoản CHỌN của mình và bạn cần SUM (Số tiền giao dịch) vào tất cả các ngày, trong trường hợp đó, nếu bạn thêm
SELECT TransactionDate, TransactionID, AccountID, SUM(TransactionAmount)
FROM Table
GROUP BY TransactionDate
Sau đó, bạn sẽ gặp lỗi, tại sao vì
Giả sử bạn có 4 giao dịch vào năm 20160101 và mỗi giao dịch Số tiền là $ 1000
Kỳ vọng kết quả của bạn sẽ là
TransDate TransAmt
20140101 4000
Trong trường hợp này, nếu bạn mang các thuộc tính khác trong mệnh đề SELECT như AccountID và TransactionID, chúng sẽ đi đâu? Đây là lý do tại sao chúng ta phải bao gồm tất cả các thuộc tính trong Mệnh đề GROUP, những thuộc tính từng có trong mệnh đề CHỌN ngoại trừ thuộc tính có trong hàm AGGREGATE.