如何按每个组的最高值对组进行排序

我有数据:


query url score  

a www.google.com 3  

a www.facebook.com 2  

a www.google.com 1

我想按域对条目进行“分组”,然后按每个组的最高分对域组进行排序(描述),这样我得到:


query url score  

a www.google.com 3  

a www.google.com 1

a www.facebook.com 2  

尝试: select * from table order by Score desc, url asc 不起作用。它给出(没有明显变化):


query url score  

a www.google.com 3  

a www.facebook.com 2  

a www.google.com 1


潇湘沐
浏览 86回答 1
1回答

眼眸繁星

您可以使用窗口函数 - 如果您运行的是 MySQL 8.0:select *from mytableorder by max(score) over(partition by url) desc, score desc在早期版本中,一个选项使用子查询:select *from mytable torder by     (select max(score) from mytable t1 where t1.url = t.url) desc,    score desc
打开App,查看更多内容
随时随地看视频慕课网APP