題目是這樣的:
集團有多個部門,部門下有多個員工,求每個部門績效排名第二的人員
sql語句是這樣的
SELECT dep, MAX(score) FROM zx WHERE score NOT IN (SELECT MAX(score) FROM zx GROUP BY dep) GROUP BY dep
這樣就衍生出一個問題,如何判斷,這樣非分組排序,或者第二大的數或者第三大的
這樣可以使用,嵌套使用一次就行
SELECT MAX(score) FROM zx WHERE score NOT IN (SELECT MAX(score) FROM zx WHERE score NOT IN (SELECT MAX(score) FROM zx ))
思想就是在where條件里面去除已經發現最大的,就是第二大,在去除一個就是第三大的