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

Không phải lỗi biểu thức GROUP BY

Lỗi nói lên tất cả, bạn không nhóm theo MEMBERS.MEMBER_IDMEMBERS.MEMBER_NAME .

SELECT MEMBERS.MEMBER_ID, MEMBERS.MEMBER_NAME
     , COUNT(personal_training_sessions.session_id)
  FROM MEMBERS 
  JOIN personal_training_sessions
    ON personal_training_sessions.member_id = members.member_id
 GROUP BY MEMBERS.MEMBER_ID, MEMBERS.MEMBER_NAME

Bạn muốn số lượng phiên cá nhân mỗi thành viên, vì vậy bạn cần phân nhóm theo thông tin thành viên.

Truy vấn cơ bản (tất nhiên nó có thể phức tạp hơn nhiều) GROUP BY, SELECT truy vấn là:

SELECT <column 1>, <column n>
     , <aggregate function 1>, <aggregate function n>
  FROM <table_name>
 GROUP BY <column 1>, <column n>

Một hàm tổng hợp, như Ken White nói, giống như MIN() , MAX() , COUNT() v.v .. Bạn NHÓM THEO tất cả các cột không được tổng hợp.

Điều này sẽ chỉ hoạt động như dự kiến ​​nếu MEMBERS của bạn bảng là duy nhất trên MEMBER_ID , nhưng dựa trên truy vấn của bạn, tôi nghi ngờ là như vậy. Để làm rõ ý tôi, nếu bảng của bạn không phải là duy nhất trên MEMBER_ID thì bạn không tính số phiên mỗi MEMBER_ID nhưng số phiên mỗi MEMBER_ID mỗi MEMBER_NAME . Nếu họ ở trong mối quan hệ 1:1 thì nó thực sự giống nhau nhưng nếu bạn có thể có nhiều MEMBER_NAME s mỗi MEMBER_ID thì không phải.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. kiểm tra kết nối từ ứng dụng C # với cơ sở dữ liệu oracle 10g

  2. Thủ tục Oracle

  3. Oracle CLOB không thể chèn quá 4000 ký tự?

  4. ORA-00910:độ dài được chỉ định quá dài đối với kiểu dữ liệu của nó

  5. Sử dụng toán tử 'LIKE' với một truy vấn con trả về nhiều kết quả