昨天遇到的一个SQL面试题,感觉很有趣。
表名stu 结构如下
name km fs
张三 语文 81
张三 数学 75
李四 语文 76
王五 英语 90
李四 数学 90
王五 语文 81
王五 数学 99
用SQL语句查询每门成绩都大于80的学生姓名
表名stu 结构如下
name km fs
张三 语文 81
张三 数学 75
李四 语文 76
王五 英语 90
李四 数学 90
王五 语文 81
王五 数学 99
用SQL语句查询每门成绩都大于80的学生姓名
CREATE TABLE student ( s_id INT PRIMARY KEY IDENTITY, s_name VARCHAR(20), s_course VARCHAR(20), s_score DECIMAL(18,2) ) go INSERT INTO student ( s_name, s_course, s_score ) SELECT '张三', '语文', 81 UNION ALL select '张三', '数学', 75 UNION SELECT '李四', '语文', 76 UNION SELECT '王五', '英语', 90 UNION SELECT '李四', '数学', 90 UNION SELECT '王五','语文', 81 UNION SELECT '王五', '数学', 99 GO
SELECT s_name FROM student GROUP BY s_name HAVING MIN(s_score)>=80
SELECT distinct s_name FROM student WHERE NOT EXISTS (SELECT 1 FROM student t WHERE t.s_name=student.s_name AND t.s_score<80)
发表评论
-
转:避免全表扫描的sql优化
2015-02-05 16:37 1322http://tech.diannaodian.com/dw/ ... -
给表加上聚集索引和非聚集索引
2014-12-11 17:28 700创建简单非聚集索引 以下示例为 Purchasing.Pro ... -
查看表中索引语句
2014-12-11 10:37 678SELECT object_name(object_id) ... -
SQL2008一行转多行的精典写法
2013-08-28 12:06 413--创建测试表 create table t1( id ... -
在sql server中利用with as实现递归功能
2013-06-25 10:48 532在sqlserver2005之前,要实现递归功能比较麻烦,比如 ... -
SQL 2005 with(nolock)详解
2013-06-17 17:03 583大家在写查询时, ... -
SqlServer强制断开数据库已有连接的方法
2013-02-22 11:03 1619在master数据库中执行如下代码 declare @i IN ... -
Sql获取第一天、最后一天
2013-01-03 14:56 9676① 本月第一天(--减去今天再加上1天) SELECT DAT ... -
表函数与游标
2012-12-25 16:07 742--建立数据源 create table tb1(zm ch ... -
sql server 2005 输出表的函數用法
2012-12-25 16:02 834view sourceprint? 01 --sql ser ... -
SQL杂谈
2012-12-14 17:33 7281、如何用convert什么的把带有时分秒的日期转为时分秒都0 ... -
用FOR XML PATH将查询结果以XML输出
2012-09-20 17:54 1038本文从此而来 http://www.cnblogs.com/d ... -
left join on and
2012-09-20 10:23 886数据库在通过连接两张或多张表来返回记录时,都会生成一张中间的临 ... -
筛选索引简单使用
2012-08-17 11:29 1153对于在强制实施数据完整性时的一种常见需求,也可以用筛选索引来解 ... -
排名函数(ROW_NUMBER、RANK、DENSE_RANK)及OVER子句
2012-08-10 10:36 6629--在部门内新水排名(如果有相同名次,用dense_rank) ... -
SQL SERVER 中行列转换 PIVOT UNPIVO
2012-08-18 15:34 2330PIVOT用于将列值旋转为列名、同时执行聚合运算(即行转列), ... -
Apply简单使用举例
2012-08-09 17:20 1027APPLY APPLY运算符把右表表达式应用左输入中 ... -
SQL Server 2008语句大全完整版
2012-08-09 10:39 1391--======================== ... -
Not Exists练习
2012-07-23 14:40 888IF OBJECT_ID(N'a') IS NOT NU ... -
Exists练习查找最小缺失值(Missing Value)
2012-07-17 09:34 994第一种方法 USE tempdb; GO IF OBJE ...
相关推荐
该实例使用了 AVG 函数来计算平均成绩,然后使用 HAVING 语句来筛选出平均成绩大于 60 分的记录。 3. 查询所有同学的学号、姓名、选课数、总成绩 该实例使用了 LEFT OUTER JOIN 语句来连接学生表和成绩表,然后...
- **示例**: 查询1号课成绩大于80分的学生的学号及成绩,并按成绩由高到低排序。 - **SQL语句**: `SELECT 学号, 成绩 FROM 选课 WHERE 课号 = '1' AND 成绩 > 80 ORDER BY 成绩 DESC` **知识点5:非条件查询** - *...
SQL语句示例集锦 数据库学习的重要性不言而喻,本篇文章收录了50个SQL语句的例子,涵盖了...这些示例涵盖了基本的SQL语句操作,如子查询、连接查询、聚合函数、having子句等,旨在帮助初学者快速掌握SQL语句的使用。
- 添加`HAVING`子句来筛选出平均成绩大于某个阈值的学生。 - 结合其他字段(如学生姓名)进行展示。 ### 5. 列出各门课程成绩最好的学生 原始SQL语句为: ```sql select t1.StudentID, t1.CourseID, t2.maxscore ...
一、查询每门课都大于80分的学生姓名 问题:使用一条SQL语句查询出每门课都大于80分的学生姓名。 解决方案:select distinct name from table where name not in (select distinct name from table where fenshu<=...
(7)查询所有课程的成绩都在80分以上的学生的姓名、学号、且按学号升序排列; (8)查询缺成绩的学生的姓名,缺成绩的课程号及其学分数; (9)查询有一门以上(含一门)三个学分以上课程的成绩低于70分的学生的姓名...
本资源提供了50个经典的SQL语句,帮助用户快速掌握SQL语言的使用。该资源包含了多种SQL语句,包括查询语句、插入语句、更新语句、删除语句等,涵盖了SQL语言的各个方面。 知识点一:查询语句 * 查询“001”课程比...
从给定的文件标题“50句常用SQL语句”及其描述中,我们可以看出这份资料旨在分享在数据库管理和数据检索中频繁使用的SQL查询语句。SQL(Structured Query Language)是用于管理关系数据库的标准语言,其功能强大,...
"一道题涉及到50个SQL语句" 这道题目主要考察了 SQL 语句的使用,涉及到多表连接、子查询、聚合函数等知识点。下面将对每个问题进行详细的解释和分析: 1. 查询“001”课程比“002”课程成绩高的所有学生的学号: ...
8. 查询课程平均成绩大于 80 的课程名称:使用 AVG 函数和 GROUP BY 语句实现分组查询。 9. 查询选修人数最多的课程名称:使用 COUNT 函数和 GROUP BY 语句实现分组查询。 10. 查询计算机系的学生选修课程中选修...
--25、查询各科成绩前三名的记录--25.1 分数重复时保留名次空缺--25.2 分数重复时不保留名次空缺,合并名次--sql 2000用子查询实现--sql 2005用DENSE_RANK实现--26、查询每门课程被选修的学生数 --27、查询出只有两...
-- 查询每门课程成绩都高于该门课程平均分的学生学号 SELECT S.Sno FROM Student S JOIN SC SC ON S.Sno = SC.Sno WHERE SC.Grade > (SELECT AVG(Grade) FROM SC WHERE Cno = SC.Cno) GROUP BY S.Sno HAVING COUNT...
该语句使用了聚合函数 avg() 和 group by 语句,firstly,查询出所有学生的成绩,接着使用 group by 语句将结果集进行分组,最后使用 having 语句筛选出平均成绩大于 60 分的学生。 3. 查询所有同学的学号、姓名、...
### SQL 查询语句练习知识点详解 #### 一、SQL 表结构及数据插入 - **学生表 (Student):** - `S#` (学生编号): varchar2(20) - `Sname` (学生姓名): varchar2(10) - `Sage` (学生年龄): int - `Ssex` (学生性别...
该查询返回每位学生的学号、姓名以及他们选课的数量和总成绩。 **SQL语句详解:** ```sql select Student.S#, Student.Sname, count(SC.C#), sum(score) from Student left Outer join SC on Student.S# = SC.S# ...
- 使用连接查询,例如查询学生姓名及其对应的教师姓名: SELECT sname, tname FROM student JOIN teacher ON student.sno = teacher.tno; SQL语句基本语法的学习对于数据库管理和数据操作至关重要,能够帮助开发者...
9. 第九条语句使用`not in`排除所有课程成绩大于60分的学生。 10. 第十条语句通过分组和`having`子句找出没有学完所有课程的学生。 11. 最后一条语句使用子查询来查找选课数不等于所有课程数的学生。 这些SQL语句...
- **功能**:计算每个学生的平均成绩,只显示平均成绩大于60分的学生信息。 - **解析**:使用`AVG()`函数计算平均成绩,并用`GROUP BY`按学生分组,最后通过`HAVING`子句过滤出平均成绩大于60分的学生。 #### 实例3...
- **知识点**:这里使用了子查询来获取每个课程的平均成绩,并在外层查询中比较单个学生的成绩是否低于该课程的平均成绩。 #### 34. 查询所有任课教师的Tname和Depart. - **SQL语句**:`SELECT ...
该查询使用左连接(`LEFT OUTER JOIN`)来确保所有学生的信息都被包含进来,并使用`COUNT`和`SUM`函数统计每位学生的选课数量和总成绩。 ```sql SELECT Student.S#, Student.Sname, COUNT(SC.C#), SUM(Score) FROM ...