Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Mệnh đề tương đương của GroupBy và Have trong Đại số quan hệ

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 .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Xóa các hàng trùng lặp khỏi bảng

  2. MySQL:Tham gia bên trong so với Ở đâu

  3. MySQL TẢI DỮ LIỆU ĐỊA PHƯƠNG INFILE Python

  4. Cảnh báo PHP:Khởi động PHP:Không thể tải thư viện động 'pdo_mysql.so'

  5. MySQL:Làm thế nào để chọn các bản ghi cho tuần này?