我是类似下面的查询:
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
中的表达式正确执行此操作,甚至可能使用窗口函数?
加入返回计数的子查询,然后按计数排序。
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