Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 确定记录的出现次数_Sql_Mysql - Fatal编程技术网

Sql 确定记录的出现次数

Sql 确定记录的出现次数,sql,mysql,Sql,Mysql,我有两张表——学生和面试——有价值观: student ---------- sID sName interview ---------- sID date outcome = (OFFER, NOOFFER, HIRED) 我必须列出从未收到录取通知书但接受过五次以上面试的学生的sID 我很难确定一个学生是否接受过5次以上的面试。我知道您可以只计算记录,看看sID是否列出了5次以上,但我不确定如何格式化它。任何帮助都将不胜感激 使用: SELECT s.sid FR

我有两张表——学生和面试——有价值观:

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')
使用:


好的,这是有道理的,但我不确定我是否理解“selectnull”语句-这到底是做什么的?不过这很有效,非常感谢@user457666:在EXISTS子句中,不使用SELECT子句。您可以用
EXISTS替换
EXISTS(选择NULL…
)(选择1/0…
,它应该会返回一个数学错误来除以零——它不会。
存在
只对
FROM
子句感兴趣。好的,这是有意义的,但我不确定我是否理解“SELECT null”语句-这到底是做什么的?不过这很有效,非常感谢!!@user457666:in如果是EXISTS子句,则不使用SELECT子句。您可以将
EXISTS(SELECT NULL…
替换为
EXISTS(SELECT 1/0…
),它将返回一个数学错误,用于除以零——它不会。EXISTS只对
FROM
子句感兴趣。
select s.sID,s.sName from
( select sID,count(0) as numInterviews 
  from interview 
  where sID not in (select sID from interview where outcome='OFFER') 
  group by sID
) as interviewCounts
join student s on s.sID=interviewCounts.sID
where interviewCount>5