給定一個名爲表「等級」:如何將查詢返回行值的樣本作爲列?
STUDENT GRADE
john 94
john 76
john 83
john 87
john 90
我想查詢返回檔次的幾個例子爲每個學生,例如:
STUDENT GRADE1 GRADE2 GRADE3 GRADE4
John 94 76 83 87
注意只有4個樣品級列返回,但這個學生有超過4個等級。
我只知道如何返回使用MIN()和MAX()函數2個例年級在GROUP BY子句:
select student, min(grade), max(grade)
from grades
group by student
是否有比最小值/最大值,使其他任何技巧或功能使用GROUP BY子句顯示超過兩個等級?
我寧願不寫我自己的存儲函數來做到這一點,除非它是查詢的一部分,而不是存儲在數據庫中。
我想到更多的功能,從MIN和MAX(如第二高,第三高等),除了記錄集返回其他值。
想法?
:
這也可以使用聚合函數CASE表達式實現的呢? –
@juergend如果我正確理解這個問題,我相信他想要選擇預設數量的隨機行(本例中爲4)進行採樣。 – pseudocoder
學生將有最大數量的分數嗎? – logixologist