這個問題在這里已經有了答案: 獲取每組分組結果的前 n 條記錄 12 個答案 5 小時前關閉。
我正在嘗試找到 2016 年和 2017 年最好的 5 名學生。我現在的查詢如下所示:
SELECT S.vorname,
S.nachname,
MAX(I.abgeschlossen) AS Abschlussjahr,
A.note
FROM student AS S
INNER JOIN inskription AS I ON S.matnr= I.student
INNER JOIN absolvierung AS A ON S.matnr = A.student
WHERE A.note = 1
AND YEAR(I.abgeschlossen) IN ('2016', '2017')
GROUP BY S.vorname, S.nachname, A.note
ORDER BY Abschlussjahr DESC
輸出如下所示:
我的輸出圖片
將 2016 年和 2017 年的前 5 名放在同一列中的可能方法是什么?
uj5u.com熱心網友回復:
這應該讓你兩年都進入前 5 名
(SELECT S.vorname,
S.nachname,
I.abgeschlossen AS Abschlussjahr,
A.note
FROM student AS S
INNER JOIN inskription AS I ON S.matnr= I.student
INNER JOIN absolvierung AS A ON S.matnr = A.student
WHERE A.note = 1
AND YEAR(I.abgeschlossen) = 2016
ORDER BY Abschlussjahr DESC
LIMIT 5)
UNION
(SELECT S.vorname,
S.nachname,
I.abgeschlossen AS Abschlussjahr,
A.note
FROM student AS S
INNER JOIN inskription AS I ON S.matnr= I.student
INNER JOIN absolvierung AS A ON S.matnr = A.student
WHERE A.note = 1
AND YEAR(I.abgeschlossen) = 2017
ORDER BY Abschlussjahr DESC
LIMIT 5)
如果您想要order by其他一些列,只需更改列名。
也不需要聚合函式,group by因為您不需要max()聚合函式。
編輯:在這篇文章中發現你應該添加括號
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/491568.html
上一篇:在一張表中捕獲兩張表之間的差異
