如何在 Oracle SQL 开发人员中按值显示分组
How to show group by value in Oracle SQL developer
在 Oracle SQL Developer 中对列求和后,我试图按字段名称显示分组,但没有得到。
以下是我的数据 -
正在寻找如下输出 -
这是我的查询 -
Select ID、名称、总和(金额)来自表 1 按名称分组按总和(金额)DESC 排序;
您可以使用 listagg()
,但消除重复项很棘手,因为它不支持 distinct
。一种方法使用 row_number()
和 case
:
select id,
listagg(case when seqnum = 1 then name end, ',') within group (order by name desc) as names,
sum(amount)
from (select t.*, row_number() over (partition by id, name order by id) as seqnum
from table1 t
) t
group by id;
listagg()
忽略 NULL
个值。
Here 是一个 db<>fiddle.
在 Oracle SQL Developer 中对列求和后,我试图按字段名称显示分组,但没有得到。
以下是我的数据 -
正在寻找如下输出 -
这是我的查询 -
Select ID、名称、总和(金额)来自表 1 按名称分组按总和(金额)DESC 排序;
您可以使用 listagg()
,但消除重复项很棘手,因为它不支持 distinct
。一种方法使用 row_number()
和 case
:
select id,
listagg(case when seqnum = 1 then name end, ',') within group (order by name desc) as names,
sum(amount)
from (select t.*, row_number() over (partition by id, name order by id) as seqnum
from table1 t
) t
group by id;
listagg()
忽略 NULL
个值。
Here 是一个 db<>fiddle.