我有两个表 - 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/