题目是这样的:
集团有多个部门,部门下有多个员工,求每个部门绩效排名第二的人员
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条件里面去除已经发现最大的,就是第二大,在去除一个就是第三大的