使用SQL查询出每门课程的成绩均大于80分的学生姓名

【每日一练:SQL】Oracle使用一个SQL查询出每门课程的成绩都大于80分的学生姓名 Oracle使用一个SQL查询出每门课程的成绩都大于80分的学生姓名 SQL题: 使用一个SQL查询出每门课程的成绩都大于80分的学生姓名 表名为tb_grade,字段和数据如下 name    course        score 张三    语文        94 张三    数学        84 李四    语文        76 李四    数学        83 王五   ... 阅读详情

题目: 有一个student表,表中记录一个班级所有学生的课程和成绩,每个学生有多门课程,不同的学生选修的课程可能不一样。尝试写一条SQL语句查询出所有课程成绩大于80分的所有学生姓名。
表结构和表数据如下:

-- ----------------------------
-- Table structure for student
-- ----------------------------
DROP TABLE IF EXISTS `student`;
CREATE TABLE `student` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `score` double NOT NULL,
  `name` varchar(50) DEFAULT NULL,
  `course` varchar(50) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of student
-- ----------------------------
INSERT INTO `student` VALUES ('1', '80', '张飞', '语文');
INSERT INTO `student` VALUES ('2', '76', '张飞', '数学');
INSERT INTO `student` VALUES ('3', '88', '刘备', '语文');
INSERT INTO `student` VALUES ('4', '95', '刘备', '数学');
INSERT INTO `student` VALUES ('5', '86', '关羽', '语文');
INSERT INTO `student` VALUES ('6', '72', '关羽', '数学');
INSERT INTO `student` VALUES ('7', '78', '关羽', '英语');
INSERT INTO `student` VALUES ('8', '80', '诸葛亮', '语文');
INSERT INTO `student` VALUES ('9', '85', '诸葛亮', '物理');
INSERT INTO `student` VALUES ('10', '88', '诸葛亮', '化学');

student表数据

方法一:逆向思维解答
先查出有课程成绩小于80分的学生姓名,然后用not in 或 not exists 方法进行排除。

//not in
SELECT DISTINCT a.name
FROM student a
WHERE a.name NOT IN(SELECT DISTINCT b.name FROM student b WHERE b.score < 80)

//not exists
SELECT DISTINCT a.name
FROM student a
WHERE NOT EXISTS(SELECT 1 FROM student b WHERE b.score < 80 
AND a.name = b.name)

查询结果

name
刘备
诸葛亮

说明:
exists (sql 返回结果集,为真)
not exists (sql 不返回结果集,为真)
exists 与 in 最大的区别在于 in引导的子句只能返回一个字段

方法2:使用Having

SELECT s.name
FROM student s
GROUP BY s.name
Having MIN(s.score)>=80

查询结果

name
刘备
诸葛亮

说明:
SQL使用HAVING子句来指定一组行或聚合的过滤条件。
HAVING子句通常与GROUP BY子句一起使用,以根据指定的条件过滤分组。如果省略GROUP BY子句,则HAVING子句的行为与WHERE子句类似。
HAVING子句将过滤条件应用于每组分行,而WHERE子句将过滤条件应用于每个单独的行。

面试题:用一条SQL语句查询出每门课都大于80分的学生姓名 数据表结构和数据如下: -- ---------------------------- -- Table structure for grade -- ---------------------------- CREATE TABLE `grade` ( `id` int(4) unsigned NOT NULL AUTO_INCREMENT COMMENT 'id主键', `user... 阅读详情

相关推荐

洪君:查出“张”姓学生中平均成绩大于75分的学生信息&查询出每门课程的成绩都大于80的学生

查询出“张”姓学生中平均成绩大于75分的学生信息 表名:student_score name course score 张青 语文 72 王华 数学 72 张华 英语 81 张青 物理 67 李立 化学 98 张燕 物理 70 张青 化学 76 select * from student_score where name like ‘张%’ having avg(sco...

洪君的博客 7963

10-24 查询平均分高于80分的学生(MSSQL)

10-24 查询平均分高于80分的学生(MSSQL)

qq_65556196的博客 4248

skill使用教程,从小白到大神进阶

(2)突然无法使用(NodeJS安装参考):如果正常使用中,突然发现claude命令无法启动claude-code了,可能是claude-code正在后台自动更新,等待几分钟后再尝试使用,如果还是不行,请先运行下列代码移除claude-code,注意,如果你的node安装目录不同,要替换成自己的安装目录:rm -rf /opt/homebrew/lib/node_modules/@anthropic-ai/claude-code。安装完成后,让我们启动 Claude Code,看看它长什么样。

weixin_45036829的博客 2006

【SQL】获取所有课程得分都大于80分的学生的平均得分

思路:要求是所有课程成绩均大于80以上的学生,则只要一门成绩小于80,就不满足条件。 显然,只要先查出有成绩小于80的学生,然后将其排除掉,那么剩下的即为所有课程成绩都大于80的学生。 sql: select avg(score) from tb_score where name not in (select name from tb_score where score < 80); ①:SELECT DISTINCT stu_id FROM score WHERE score<80 --&g.

haohaoxuexiyai的博客 7353

告别抓包:一个Xposed模块教你监控抖音App的本地数据变化

本文详细介绍了如何利用Xposed框架开发模块,实现抖音App本地数据监控的技术方案。通过Hook关键方法,开发者可以实时获取用户信息、推荐算法参数等核心数据,无需Root设备即可高效调试。文章包含完整的环境配置、代码实现和优化技巧,为移动应用开发与测试提供创新解决方案。

weixin_27015733的博客 384

AutoDock Vina 对接计算(大批量)

AutoDock Vina是一种用于计算生物分子之间相互作用的计算工具,主要用于蛋白质和小分子(通常是潜在药物分子)之间的对接研究。它可以用于虚拟筛选、药物设计和生物分子结合位点的预测等多个应用领域。

MurphyStar的博客 1万+

使用sql语句查出每门课成绩都大于80分的学生姓名

根据表的结构来使用sql语句查询 建表SQL如下: create table stu_grade(name varchar(20),coursevarchar(20),grade int); – 插入数据 INSERT INTO stu_grade VALUES (‘张三’, ‘语文’, ‘81’); INSERT INTO stu_grade VALUES (‘张三’, ‘数学’, ‘75’); INSERT INTO stu_grade VALUES (‘李四’, ‘语文’, ‘76’); INS

挽风博客 3万+

疾病负担研究(GBD)介绍

今天我们来聊一聊第一个公共数据库——GBD数据库,全称叫做global burden of disease(全球疾病负担),该数据库每年都会更新,目前已经更新到GBD2019。 这里直接给大家贴出网址:Global Burden of Disease Study 2019 (GBD 2019) Data Resources | GHDx 上图中红色圈圈标识的就是数据库的数据获取界面的链接,大家直接点击即可. 数据的检索十分方便: Context下拉菜单中可以选择不同的选项,默认是caus

weixin_44240228的博客 1万+

mysql基本练习(一)

#(1)查询所有班级的班级编号,班级名称和所属学院 select classno,classname,institute from class #(2)查询所有学院的名称 select institute from class #(3)查询消除重复元组 select distinct institute from class #(4)查询所有列 select classno,classname...

呵呵哒!的博客 5495

Petalinux-2018.3添加内核驱动(linux-xlnx源码打补丁)

大部分模块可以直接使用,需要添加自己的驱动文件时,可以通过linux-xlnx源码打补丁方式和使用PetaLinux编译为.ko文件加载运行,本文章介绍通过linux-xlnx源码打补丁方式添加内核驱动文件。根据查找资料,了解到可以通过打补丁方式添加到工程文件中。. /opt/tool-pkg/petalinux/2018.3/components/yocto/source/arm/layers/core/oe-init-build-env (该执行文件在Petalinux软件安装路径下)

sanyuedtaifen的博客 1551

避开新手第一个坑:手把手教你正确安装Perforce服务器与客户端(P4d/P4V)

本文详细指导如何正确安装和配置Perforce服务器与客户端(P4d/P4V),避免新手常见的安装顺序错误。从环境准备到分步安装,再到常见问题排查和性能优化,帮助开发者快速搭建稳定的版本控制环境,提升团队协作效率。

weixin_26804345的博客 656

用一条SQL语句查询出每门课程的成绩都大于80的学生姓名

-- 用一条SQL语句查询出每门课程的成绩都大于80的学生姓名。Student表如下: -- name course score -- 张三 语文 81 -- 张三 数学 75 -- 李四 语文 76 -- 李四 数学 90 -- 王五 语文 81 -- 王五 数学 100 -- 王五 英语 90 create table test1( id int ...

qq_34651407的博客 9242

“/usr/lib/wsl/wsl-setup“ failed, exiting

WSL2安装Ubuntu时出现"wsl-setup failed"错误的解决方法 摘要:当Windows用户名包含中文字符时,安装WSL2+Ubuntu会出现"wsl-setup failed"错误。本文提供两种解决方案:1)修改中文用户名(风险较大);2)通过命令手动配置。推荐第二种方法:先使用"wsl -l -v"查看Ubuntu名称,再通过"wsl -d Ubuntu20.04 -e /bin/bash"命令启动WSL2系

猿小白的博客 993

mysql查询成绩大于89分_查询每门课程成绩都大于80分学生的姓名

转载的sql语句.1 查询每门课程成绩都大于80分学生的学号数据库 表 studentname score courseA 85语文A 75数学A 82英语B75语文B89数学B79英语天使美眉90 语文天使美眉100 数学天使美眉100 英语请找出每门课程都超过80分的那个人名字的SQL语句SQL1:select name from test.stugr...

weixin_42392425的博客 1万+

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

查询所有分都大于80分的学生姓名

数据表 name cource score 张三 语文 81 张三 英语 85 张三 数学 78 李四 语文 84 李四 英语 74 李四 数学 65 王五 语文 86 王五 英语 87 王五 数学 82 表的sql语句 SET FOREIGN_KEY_CHECKS=0 -- ---------------------...

lkwan123的博客 1万+

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

10-10 查询选修课程超过2门且成绩都在80分以上的学生

本题目要求编写SQL语句,查询选修课程超过2门且成绩都在80分以上的学生的姓名、专业及总学分。 提示:请使用SELECT语句作答。 表结构: CREATE TABLE `major` ( `mno` char(2) NOT NULL, `mname` varchar(20) NOT NULL, PRIMARY KEY (`mno`) ); CREATE TABLE `stu` ( `sno` char(4) NOT NULL, `sname` char(8) NOT NULL, `s

weixin_46525412的博客 1万+

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

用一条SQL语句查询出每门课都大于80分的学生姓名

两道sql题:1、用一条SQL语句查询出每门课都大于80分的学生姓名。2、删除除了自动编号不同,其他都相同的学生冗余信息。第一题数据如下:分析:每门课都大于80分,就是说学生最低分数要大于80分,我们直观看只有"王五"这个学生每门课分数都在80分以上。解决思路:这里需要用到聚合函数min(score),查询出最低分数大于80分的学生即可。使用了聚合函数,条件就需要使用having语句。第一步,查询...

feinifi的博客 11万+

[笔试题] 使用 SQL 语句查询学生科目成绩都大于 80 分的学生姓名

思路:直接查询学生所有科目成绩都大于 80 分的学生比较困难,所以采用逆向思维,先过滤到学生科目成绩小于 80 分的学生,剩下的都是学生科目成绩大于 80 分的学生,再按照学生姓名去重就可以结果。

Sunshine.wz的博客 7527

mysql查询每科成绩大于80_[关于SQL]查询成绩都大于80分的学生

1.用一条SQL语句 查询出每门课都大于80分的学生姓名name kecheng fenshu张三 语文 81张三 数学 75李四 语文 76李四 数学 90王五 语文 81王五 数学 100王五 英语 90CREATE TABLE [dbo].[chengji]([name] [nvarchar](50) NULL,[kecheng] [nvarchar](50) NULL,[fenshu] [...

weixin_39732534的博客 1万+

用一条SQL 语句 查询出每门课都大于80 分的学生姓名

1老规矩,首先分析题目理清楚思路再做题,上图: 2.如上图,查询每门课都大于80分的学生姓名,那么第一反应这还不简单: Select Distinct Name From Student Where Sorce&gt;80(错), 但是这样查询出来的结果,只要大于80分科目的学生姓名就会进来(查询结果如下图), 3.我们与1图比对一下,你会发现李四的语文只有76分,张三的数学只有7...

qq_37958608的博客 6800

Mysql查询各门课程成绩大于85分的学生名单—纠正网上大部分文章的错误

最近在面试中遇见一个Mysql面试题内容如下: 一张score表 中有如图所示数据,写出查询 所有成绩都大于85分的学生姓名的sql。 第一反应 所有成绩 根据name group by。 然后在min(chengji)>85. 写出的sql如下 SELECT * from chengji1 GROUP BY `name` HAVING MIN(chengji)>=8...

songfelicity的博客 1万+

MySQL 案例练习:用一条 SQL 语句查询出每门课都大于 80 分的学生姓名

用一条sql语句查询出每门课都大于80分的学生姓名。

白鹿第一帅的 优快云 博客 4812

SQL求出分数都大于80的学生姓名及其总成绩

先看一下题目: 这是一道还算简单的题目,但是会困扰一些基础薄弱或刷题少的同学。 需要提前声明的是,这道题本身就存在问题,我理解的是这道题的数据库违反了数据库bcnf范式。也就是说对于成绩和学科这两个字段和学生信息放一起是有问题的,因为他们有依赖关系,简而言之就是,一门课程只能有一个分数。 那如果这道题就是考场上的题,我们就应该默认他是正确的来做。先看一下我准备的两张表。 数据库中的表 stud...

LaZY的博客 9183
上一篇: 访问JSP页面报错According to TLD or attribute directive in tag file, attribute value does not accept
下一篇: Java使用MongoTemplate操作MangoDB,实现根据时间等条件组合查询,解决ISODate的问题
fysuccess
博客等级 码龄18年 6876粉丝 52原创
评论 6
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值