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

Lọc những sinh viên chưa vượt qua một môn học nào

Tôi khuyên bạn nên sử dụng tổng hợp:

SELECT `Reg.No`, SubjectCode, SUM(`Pass/Fail` = 'Pass')
FROM results
GROUP  BY `Reg.No`, SubjectCode
HAVING SUM(`Pass/Fail` = 'Pass') = 0;

HAVING mệnh đề đếm số kết quả cho mỗi sinh viên và khóa học trong đó cột cuối cùng là 'Pass' . Trong MySQL, boolean được coi là số nguyên trong ngữ cảnh số, với true là 1. Vì vậy, sum( Đạt / Không đạt = 'Pass') đếm số lần một học sinh đã vượt qua khóa học. = 0 nói rằng sinh viên không bao giờ vượt qua khóa học.

Theo gợi ý, không đặt các ký tự đặc biệt như /. trong tên cột. Điều đó đòi hỏi phải thoát khỏi các cột và chỉ làm cho mã khó viết hơn vì nó chứa đầy các dấu gạch ngược.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Số ID lớn nhất mà autoincrement có thể tạo ra trong mysql là gì

  2. Điền lựa chọn thả xuống từ bảng cơ sở dữ liệu

  3. chọn 30 hàng ngẫu nhiên trong đó tổng số tiền =x

  4. làm thế nào để tự động chèn tham chiếu khóa ngoại trong bảng trong mysql hoặc JDBC?

  5. MY SQL - Mã lỗi:1010. Lỗi khi thả cơ sở dữ liệu (không thể rmdir; errno:13)