按出现次数计数

问题描述 投票:0回答:1

我是类似下面的查询:

select * from combined where valid_rating is null
order by FIND_IN_SET(provider, (select provider from combined where valid_rating is null group by provider order by count(1) desc))

基本上,我尝试先按“最重要”

provider
(项目数最多的)进行排序。我如何使用
order_by
中的表达式正确执行此操作,甚至可能使用窗口函数?

sql mysql database
1个回答
0
投票

加入返回计数的子查询,然后按计数排序。

SELECT c.*, ct.count
FROM combined AS c
JOIN (
    SELECT provider, COUNT(*) AS count
    FROM provider
    GROUP BY provider
) AS ct ON c.provider = ct.provider
ORDER BY count DESC
© www.soinside.com 2019 - 2024. All rights reserved.