sql - 确定记录的出现次数

标签 sql mysql

我有两个表 - student 和 interview - 具有以下值:

student
----------
sID  
sName  

interview
----------
sID  
date  
outcome = (OFFER, NOOFFER, HIRED)  

而且我必须列出任何从未收到过录取通知书但已经接受过五次以上面试的学生的 sID。

我无法弄清楚如何确定学生是否接受了 5 次以上的面试。我知道您可以只计算记录以查看 sID 列出的次数是否超过 5 次,但我不确定如何格式化它。任何帮助将不胜感激!

最佳答案

使用:

SELECT s.sid
  FROM STUDENT s
 WHERE EXISTS(SELECT NULL -- more than five interviews
                FROM INTERVIEW i 
               WHERE i.sid = s.sid
            GROUP BY i.sid
              HAVING COUNT(*) > 5)
   AND NOT EXISTS(SELECT NULL -- never received an offer
                    FROM INTERVIEW i
                   WHERE i.sid = s.sid
                     AND i.outcome = 'OFFER')

关于sql - 确定记录的出现次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3796261/

相关文章:

sql - 查询一组记录的总和大于零

java - 使用 PreparedStatement java PostgreSQL 更新 ENUM 值

mysql - 对现有复杂 MySQL 模式进行建模的最佳软件(或其他)解决方案

mysql - sql显示开始日期和结束日期之间的日期

php导入本地CSV文件到MYSQL表

mysql - 从包含+ 6500万条记录的Mysql连接创建临时表

mysql - mysql查询行中的总和值

SQLite 在一个查询中执行多个 UPDATES

java - 使用显示错误的 hibernate 更新 mysql 表

mysql - 无法连接到数据库错误 - R+RMySQL/XAMPP