您的位置:首页 > 职场人生

今天做的一个SQL面试题,用到了HAVING语句来限制函数关系

2018-02-26 17:08 561 查看


面试题目如上。
第一题的问题主要是理解问题,容易写成去掉"李明"的课程的学生,而不是没选他课的学生
比如错误sql:SELECT
S.SNO
FROM
S
LEFT JOIN SC ON S.SNO = SC.SNO
WHERE
SC.CNO NOT IN (
SELECT
CNO
FROM
C
WHERE
CTEACHER = '李明'

)
正确写法应该是查出来选了他课的学生的id,然后查询id不在此列的学生id,正确sql是:
SELECT
S.SNAME
FROM
S
WHERE
S.SNO NOT IN (
SELECT
S.SNO
FROM
S
LEFT JOIN SC ON S.SNO = SC.SNO
WHERE
SC.CNO IN (
SELECT
CNO
FROM
C
WHERE
CTEACHER = '李明'
)

)

第二个题,用到了HAVING语句来限制函数,正确sql是:
SELECT
S.SNAME,
AVG(sc.SCGRADE)
FROM
S
INNER JOIN SC ON S.SNO = sc.SNO
INNER JOIN C ON sc.CNO = C.CNO
WHERE
sc.SCGRADE < 60
GROUP BY
S.SNO
HAVING

COUNT(sc.SCGRADE) >= 2
学习sql任重而道远,今天这个sql想了半个多小时,如果面试去的话,估计就GG了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐