【问题标题】:how to sort sql data for given table?如何对给定表的sql数据进行排序?
【发布时间】:2021-02-03 17:17:38
【问题描述】:
+---------+----------------+--------+
|   aid   |       fn       | col_no |
+---------+----------------+--------+
| 2011768 | ABDUL          |      5 |
| 2011499 | ABDULLA        |      4 |
| 2011198 | ADNAN          |      3 |
| 2011590 | AKSHAYA PRAISY |      2 |
| 2011749 | AMIR           |      1 |
| 2011213 | AMOGHA         |      5 |
| 2011027 | ANU            |      4 |
| 2011046 | ANUDEV D       |      3 |
| 2011435 | B S SAHANA     |      2 |
| 2011112 | BENAKA         |      1 |
+---------+----------------+--------+

如何将 col_no 之类的数字排序为 1 2 3 4 5 并再次重复为 1 2 3 4 5?

我需要这样的输出

+---------+----------------+--------+
|   aid   |       fn       | col_no |
+---------+----------------+--------+
| 2011749 | AMIR           |      1 |
| 2011590 | AKSHAYA PRAISY |      2 |
| 2011198 | ADNAN          |      3 |
| 2011499 | ABDULLA        |      4 |
| 2011768 | ABDUL          |      5 |
| 2011112 | BENAKA         |      1 |
| 2011435 | B S SAHANA     |      2 |
| 2011046 | ANUDEV D       |      3 |
| 2011027 | ANU            |      4 |
| 2011213 | AMOGHA         |      5 |
+---------+----------------+--------+ 

【问题讨论】:

    标签: mysql sql mysql-workbench


    【解决方案1】:

    您可以使用row_number()分区col_no

    select t.*
    from t
    order by row_number() over (partition by col_no order by fn),
             col_no;
    

    Here 是一个 dbfiddle。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-14
      • 1970-01-01
      相关资源
      最近更新 更多