Mysql 子组排序的排序结果
Mysql order result with subgroups order
例如我有 table
id
参数 1
参数2
1
c
1
2
一个
2
3
d
3
4
一个
1
5
b
3
6
一个
3
7
e
4
param1¶m2 对是唯一的
我想得到这个结果,其中任何具有相同 param1 的项目在自己的子组中按 id 分组
id
参数 1
参数2
1
c
1
2
一个
2
4
一个
1
6
一个
3
3
d
3
5
b
3
7
e
4
有什么建议吗?
假设“组”根据“组”中的 MIN(ID)
排序,并且“组”中的行根据 id
...
WITH
summarised AS
(
SELECT
*,
MIN(id) OVER (PARTITION BY param1) AS group_min_id
FROM
YourTable
)
SELECT
*
FROM
summarised
ORDER BY
group_min_id,
id
使用相关子查询代替 window 函数...
SELECT
*,
(SELECT MIN(id) FROM yourTable AS lookup WHERE lookup.param1 = yourTable.param1) AS group_min_id
FROM
yourTable
ORDER BY
group_min_id,
id
例如我有 table
id | 参数 1 | 参数2 |
---|---|---|
1 | c | 1 |
2 | 一个 | 2 |
3 | d | 3 |
4 | 一个 | 1 |
5 | b | 3 |
6 | 一个 | 3 |
7 | e | 4 |
param1¶m2 对是唯一的
我想得到这个结果,其中任何具有相同 param1 的项目在自己的子组中按 id 分组
id | 参数 1 | 参数2 |
---|---|---|
1 | c | 1 |
2 | 一个 | 2 |
4 | 一个 | 1 |
6 | 一个 | 3 |
3 | d | 3 |
5 | b | 3 |
7 | e | 4 |
有什么建议吗?
假设“组”根据“组”中的 MIN(ID)
排序,并且“组”中的行根据 id
...
WITH
summarised AS
(
SELECT
*,
MIN(id) OVER (PARTITION BY param1) AS group_min_id
FROM
YourTable
)
SELECT
*
FROM
summarised
ORDER BY
group_min_id,
id
使用相关子查询代替 window 函数...
SELECT
*,
(SELECT MIN(id) FROM yourTable AS lookup WHERE lookup.param1 = yourTable.param1) AS group_min_id
FROM
yourTable
ORDER BY
group_min_id,
id