表结构如上图,求帮写个sql查询按cno分组,每组中score中最高的sno、cno、score数据
------解决思路----------------------
SELECT T1.* FROM T T1,(SELECT CNO,MAX(SCORE) MAX_SCORE FROM T) T2 WHERE T1.CNO=T2.CNO AND T1.SCORE=T2.MAX_SCORE
------解决思路----------------------
提供一种分析函数的写法,这种写法执行效率应该是目前最好的
SELECT
MAX(SNO)keep(dense_rank last order by SCORE) SNO,
CNO,
max(SCORE)
from T
GROUP BY CNO