如何按行对数据进行排序? [MYSQL]
Posted
技术标签:
【中文标题】如何按行对数据进行排序? [MYSQL]【英文标题】:how can i sort data by rows? [MYSQL] 【发布时间】:2020-12-10 06:31:54 【问题描述】:我的数据库
id | title | create_by |
---|---|---|
1 | aaa | 2 |
2 | bbb | 1 |
3 | ccc | 3 |
4 | ddd | 2 |
5 | eee | 2 |
6 | fff | 3 |
我想要什么。按具有相同最高值的行排序。
id | title | create_by |
---|---|---|
1 | aaa | 2 |
4 | ddd | 2 |
5 | eee | 2 |
3 | ccc | 3 |
6 | fff | 3 |
2 | bbb | 1 |
非常感谢。
【问题讨论】:
【参考方案1】:WITH cte AS ( SELECT id,
title,
create_by,
COUNT(create_by) OVER (PARTITION BY create_by) cnt
FROM src_table )
SELECT id,
title,
create_by
FROM cte
ORDER BY cnt, id;
【讨论】:
不工作 'cnt' 给我表格中的总行数(例如结果 'cnt' 是每行 6 个) @AnusornKongthong 不准确,已修复。 @Akina:请注意,不需要 CTE。ORDER BY
子句中允许使用窗口函数。以上是关于如何按行对数据进行排序? [MYSQL]的主要内容,如果未能解决你的问题,请参考以下文章