查询各个科目成绩前三的记录
生活随笔
收集整理的這篇文章主要介紹了
查询各个科目成绩前三的记录
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
| 1 | 2005001 | 張三 | 1 | 數(shù)學(xué) | 69 |
| 2 | 2005002 | 李四 | 1 | 數(shù)學(xué) | 89 |
| 3 | 2005005 | 王五 | 1 | 數(shù)學(xué) | 23 |
| 3 | 2005001 | 張三 | 2 | 語(yǔ)文 | 69 |
| 3 | 2005002 | 李四 | 2 | 語(yǔ)文 | 73 |
| 3 | 2005005 | 王五 | 2 | 語(yǔ)文 | 88 |
| 1 | 2005006 | 趙六 | 2 | 語(yǔ)文 | 69 |
| 2 | 2005006 | 趙六 | 1 | 數(shù)學(xué) | 89 |
| 3 | 2005007 | 鄭七 | 2 | 語(yǔ)文 | 100 |
1. 用一條 SQL 語(yǔ)句查詢出每門(mén)課都大于 80 分的學(xué)生姓名
理解:分?jǐn)?shù)最小的那門(mén)課大于80,自然每門(mén)課都大于80了。
SELECT `name` FROM `test` GROUP BY `name` HAVING min(`score`) >= 80; 復(fù)制代碼2. 查詢各個(gè)科目成績(jī)前三的記錄
思路:查出該科成績(jī)超過(guò)他的人數(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é)
以上是生活随笔為你收集整理的查询各个科目成绩前三的记录的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Python suds error “'
- 下一篇: 区块链的安全和智能合约