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

MAX () trong ORACLE SQL

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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle - Cách buộc người dùng CHÈN nhiều hàng

  2. php oci8 ext không tải Không thể tải thư viện động

  3. chúng ta có thể đặt tên cho một ràng buộc mặc định trong oracle không

  4. Chuyển đổi keep secure_rank từ truy vấn Oracle thành postgres

  5. Trường ngày tự động tăng dần và phiên bản oracle sql cho một bảng