今天做的一个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了
相关文章推荐
- 【SQL】今天的一个sql面试题(分组函数使用)
- 用到 count; group by ; order by ;having 的一个SQL语句
- 【SQL】今天的一个sql面试题(分层函数使用)
- sql 语句 写一个函数T-sql函数elimination(a,b)将出现在第一个字符串中的第二个字符串中的所有字符删除,即:select dbo.elimination('abcdefg123
- 一次ORA-4030问题诊断及解决【解决思路不错,说明了对象的统计信息与优化器的优化操作(即选择执行一个SQL语句在该优化参数环境下最佳的执行计划)间的关系】
- 一个项目中用到的50个SQL语句
- 多对多关系查询~~比较好的一个SQL语句
- sql 语句 编写一个函数用来精确计算某个人的当前年龄(精确到一位小数),比如:20.3岁
- PB9写的一个拆解SQL语句的通用函数
- 不定时更新自己用到的oracle 比较有用的sql语句和函数用法
- sql 语句 编写一个函数实现将货币值用中文输出,例如12340.56,输出为:壹万二仟叁佰肆拾元伍角六分
- 关于enum ,调用webservice,用户控件与主页面之间的交互,datsource属性,net面试题,反射类生成sql语句,URl重写一个小实例
- 在SQL语句中使用函数的限制及过程与函数的区别
- SQL语句--一个简单的字符串分割函数
- 通过一个函数或sql语句,随机生成任意6个字母组成的字符
- oracle 的判断函数 计算函数 等函数的一个 实例sql语句
- 想要在SQL语句中可以使用用户自定义的函数,那么这样的用户定义函数有哪些限制?
- 关于临时表使用,今天突然用到了临时表,一些sql语句顿时都想不起怎么来写了,今天请教同事头弄完了,特此整理下。
- PB9写的一个拆解SQL语句的通用函数
- 由一个博问学到的SQL查询方法 (一道多对多关系查询的面试题)