Lưu ý rằng bạn muốn nhận tổng tiền lương, trong Hướng dẫn D :
SUMMARIZE emp BY { job } ADD ( SUM ( sal ) AS total_sal )
Tổng hợp lưu ý không phải là một toán tử quan hệ, do đó sẽ không tạo thành một phần của đại số quan hệ.
Đối với HAVING
, nó có phải là một dị thường lịch sử. Trước tiêu chuẩn SQL-92, không thể viết SELECT
biểu thức trong FROM
mệnh đề (còn gọi là bảng dẫn xuất) tức là bạn phải thực hiện tất cả công việc trong một SELECT
biểu hiện. Do thứ tự đánh giá cứng nhắc của SQL, giá trị tổng hợp không tồn tại sau WHERE
điều khoản đã được đánh giá, tức là không thể áp dụng hạn chế dựa trên các giá trị tổng hợp. HAVING
đã được giới thiệu để giải quyết vấn đề này.
Nhưng ngay cả với HAVING
, SQL vẫn chưa hoàn thiện về mặt quan hệ đối với Codd cho đến khi các bảng dẫn xuất được giới thiệu. Các bảng có nguồn gốc được hiển thị HAVING
dư thừa nhưng sử dụng HAVING
vẫn còn phổ biến (nếu Stackoverflow là bất cứ điều gì xảy ra):dân gian dường như vẫn thích sử dụng một SELECT
duy nhất nếu có thể và độ cứng đã nói ở trên của SQL liên quan đến thứ tự đánh giá (phép chiếu được thực hiện sau cùng trong SELECT
biểu thức) làm cho việc sử dụng bảng dẫn xuất khá dài dòng khi so sánh với HAVING
.