怎么样在这个基础上只保留第一次出现的open_id,和open_id最高分 输出的是tname 和 scores 比如孙七,周六,肖十一,open_id都是oMKeGtxC 输出 李四 78 孙七 87
只保留open_id和open_id的最高分吗?
如果只要这个,就很简单,根据open_id分组,求max(score)
举个栗子:
SELECT * FROM (
SELECT *, ROW_NUMBER()OVER(PARTITION BY OPEN_ID ORDER BY SCORES DESC ) RO FROM (
SELECT '李四' AS NAME ,'78' AS SCORES,'oMKEGTXQ' AS OPEN_ID
UNION ALL
SELECT '孙七' AS NAME ,'78' AS SCORES,'oMKEGTXC' AS OPEN_ID
UNION ALL
SELECT '周六' AS NAME ,'87' AS SCORES,'oMKEGTXC' AS OPEN_ID
union ALL
SELECT '吴氏' AS NAME ,'48' AS SCORES,'oMKEGTXQ' AS OPEN_ID ) A ) A
WHERE RO = 1