日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

查询各个科目成绩前三的记录

發(fā)布時(shí)間:2025/3/15 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 查询各个科目成绩前三的记录 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
idstudent_idnamecourse_idcourse_namescore
12005001張三1數(shù)學(xué)69
22005002李四1數(shù)學(xué)89
32005005王五1數(shù)學(xué)23
32005001張三2語文69
32005002李四2語文73
32005005王五2語文88
12005006趙六2語文69
22005006趙六1數(shù)學(xué)89
32005007鄭七2語文100
CREATE TABLE `test` (`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,`student_id` INT UNSIGNED NOT NULL,`name` VARCHAR(20) NOT NULL,`course_id` INT UNSIGNED NOT NULL,`course_name` VARCHAR(20) NOT NULL,`score` INT UNSIGNED NOT NULL,PRIMARY KEY (`id`) ) ENGINE = InnoDB;INSERT INTO `test` (`student_id`, `name`, `course_id`, `course_name`, `score`) VALUES (2005001, '張三', 1, '數(shù)學(xué)', 69),(2005002, '李四', 1, '數(shù)學(xué)', 80),(2005005, '王五', 1, '數(shù)學(xué)', 23),(2005001, '張三', 2, '語文', 69),(2005002, '李四', 2, '語文', 73),(2005005, '王五', 2, '語文', 88),(2005006, '趙六', 2, '語文', 69),(2005006, '趙六', 1, '數(shù)學(xué)', 89),(2005007, '鄭七', 2, '語文', 100); 復(fù)制代碼

1. 用一條 SQL 語句查詢出每門課都大于 80 分的學(xué)生姓名

理解:分?jǐn)?shù)最小的那門課大于80,自然每門課都大于80了。

SELECT `name` FROM `test` GROUP BY `name` HAVING min(`score`) >= 80; 復(fù)制代碼

2. 查詢各個(gè)科目成績前三的記錄

思路:查出該科成績超過他的人數(shù)小于3的學(xué)生,再進(jìn)行排列

SELECT `student_id`, `name`, `course_id`, `course_name`, `score` FROM `test` `t1` WHERE (SELECT count(1) FROM `test` `t2`WHERE `t1`.`course_id` = `t2`.`course_id`AND `t1`.`score` < `t2`.`score` ) < 3 ORDER BY `course_id`, `score` DESC; 復(fù)制代碼

轉(zhuǎn)載于:https://juejin.im/post/5d09e9046fb9a07f021a0499

總結(jié)

以上是生活随笔為你收集整理的查询各个科目成绩前三的记录的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。