如何使用 sql 中的 2 列进行排序
How to Order by with 2 column in sql
这是样本table
name | group
a | 2
b | 1
c | 1
d | 2
e | 4
f | 3
g | 4
如何对名称为 asc 和组为 asc 的数据进行排序 table
name | group
a | 2
d | 2
b | 1
c | 1
e | 4
g | 4
f | 3
我已经试过了
select * from table order by name asc, group asc
结果和我的预期不一样
我想你想要:
SELECT *
FROM yourTable
ORDER BY "group" DESC, name;
也就是说,您想要首先按 group
列 descending 排序,然后按 [=12] ascending =] 列。请注意,默认排序顺序是升序,因此通常我们不写 ASC
。此外,GROUP
是保留的 SQL 关键字,您应该避免使用此名称命名您的列。
您似乎想按 组 排序,但要根据组中的名字排序。您可以使用 window 函数:
order by min(name) over (partition by group) asc,
group asc,
name
请注意,group
是一个非常糟糕的列名称,因为它是一个 SQL 关键字。您可能应该为该列使用不同的名称。
Here 是一个 db<>fiddle.
这是样本table
name | group
a | 2
b | 1
c | 1
d | 2
e | 4
f | 3
g | 4
如何对名称为 asc 和组为 asc 的数据进行排序 table
name | group
a | 2
d | 2
b | 1
c | 1
e | 4
g | 4
f | 3
我已经试过了
select * from table order by name asc, group asc
结果和我的预期不一样
我想你想要:
SELECT *
FROM yourTable
ORDER BY "group" DESC, name;
也就是说,您想要首先按 group
列 descending 排序,然后按 [=12] ascending =] 列。请注意,默认排序顺序是升序,因此通常我们不写 ASC
。此外,GROUP
是保留的 SQL 关键字,您应该避免使用此名称命名您的列。
您似乎想按 组 排序,但要根据组中的名字排序。您可以使用 window 函数:
order by min(name) over (partition by group) asc,
group asc,
name
请注意,group
是一个非常糟糕的列名称,因为它是一个 SQL 关键字。您可能应该为该列使用不同的名称。
Here 是一个 db<>fiddle.