SQL 按组排序
Posted
技术标签:
【中文标题】SQL 按组排序【英文标题】:SQL ORDER BY GROUP 【发布时间】:2019-11-28 19:55:11 【问题描述】:question category
A X
B Y
C X
D X
E Y
我想从最频繁的类别中输出
question category
A X
C X
D X
B Y
E Y
【问题讨论】:
mysql order by before group by的可能重复 【参考方案1】:您可以尝试加入类别计数
select m.question, m.category
from my_table m
inner join (
select category, count(*) num
from my_table
group by category
) t on t.category = m.category
order by t.num desc, m.category, m.question
【讨论】:
【参考方案2】:如果您运行的是 MySQL 8.0,则可以为此使用窗口函数。这避免了连接的需要。
select *
from mytable
order by
count(*) over(partition by category) desc,
question
【讨论】:
【参考方案3】:使用按类别排序。
select * from [table] 按类别排序
【讨论】:
这只会对它们进行排序,但不会将发生次数最多的放在顶部以上是关于SQL 按组排序的主要内容,如果未能解决你的问题,请参考以下文章