簡體   English   中英

如何按每個組的最高值對組進行排序

[英]How do I order groups by each group's highest value

我有數據:

query url score  
a www.google.com 3  
a www.facebook.com 2  
a www.google.com 1

我想按其域對條目進行“分組”,然后按每個組的最高分對域組進行排序(desc),這樣我得到:

query url score  
a www.google.com 3  
a www.google.com 1
a www.facebook.com 2  

嘗試: select * 從表中按分數順序排列,url asc 不起作用。 它給出(沒有明顯變化):

query url score  
a www.google.com 3  
a www.facebook.com 2  
a www.google.com 1

您可以使用 window 功能 - 如果您正在運行 MySQL 8.0:

select *
from mytable
order by max(score) over(partition by url) desc, score desc

在早期版本中,一個選項使用子查詢:

select *
from mytable t
order by 
    (select max(score) from mytable t1 where t1.url = t.url) desc,
    score desc

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM