sql查询每科成绩的最高分_SQL查询每科分数最高的
假設數據表 examinationiɡ 有以下數據:+----+------+---------+--------+
|?id?|?name?|?subject?|?number?|
+----+------+---------+--------+
|?1??|?A????|?數學????|?100????|
|?2??|?A????|?語文????|?90?????|
|?3??|?A????|?英語????|?70?????|
|?4??|?B????|?數學????|?60?????|
|?5??|?B????|?語文????|?70?????|
|?6??|?B????|?英語????|?80?????|
+----+------+---------+--------+
現在的需求是:獲取 數學 / 語文 / 英語 三個科目每個科目最高分的。 通俗點說就是獲取每科第一名的。
可以使用 JOIN:SELECT?e1.*
FROM?`examinationiɡ`?e1
JOIN(
SELECT?`subject`,?MAX(number)?max_number
FROM?`examinationiɡ`
GROUP?BY?`subject`
)?e2?ON?e1.`subject`?=?e2.`subject`?AND?e1.number?=?e2.max_number
返回的結果:+----+------+---------+--------+
|?id?|?name?|?subject?|?number?|
+----+------+---------+--------+
|?1??|?A????|?數學????|?100????|
|?2??|?A????|?語文????|?90?????|
|?6??|?B????|?英語????|?80?????|
+----+------+---------+--------+
如果只需要某個科目可以這樣:SELECT?e1.*
FROM?`examinationiɡ`?e1
JOIN(
SELECT?`subject`,?MAX(number)?max_number
FROM?`examinationiɡ`
GROUP?BY?`subject`
)?e2?ON?e1.`subject`?=?'數學'?AND?e1.number?=?e2.max_number
返回的結果:+----+------+---------+--------+
|?id?|?name?|?subject?|?number?|
+----+------+---------+--------+
|?1??|?A????|?數學????|?100????|
+----+------+---------+--------+
總結
以上是生活随笔為你收集整理的sql查询每科成绩的最高分_SQL查询每科分数最高的的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: TQ2440内核linux2.6.28移
- 下一篇: linux 游戏手柄 推荐,求推荐:游戏