如果一列有多个结果(使用 GROUP BY),是否可以更改该列的值?

Is it possible to change the value of a column if it has more than one result (using GROUP BY)?

是否只有超过一个才能改变结果?

我的查询带来了这个结果:

Date Code Description Amount
01/01 1001 Produt A 1234
02/01 1001 Produt A 2345
03/01 1001 Produt A 3456

如果我只有一种产品,那很好。

但如果我有多个,则显示为:

Date Code Description Amount
01/01 1001 Produt A 1234
02/01 1001 Produt A 2345
03/01 1001 Produt A 3456
01/01 1002 Produt B 4321
02/01 1003 Produt B 5432
03/01 1004 Produt B 6543

问题是:是否只有当我的查询中有多个产品时才可以更改值?

像这样;如果我有产品 A 和 B,它应该显示:

Date Code Description Amount
01/01 Various Various 5555
02/01 Various Various 7777
03/01 Various Various 9999

您可以使用 case 表达式,查看每列中(可选不同的)值的计数;例如:

select some_date,
  case when count(distinct code) > 1
       then 'Various'
       else to_char(max(code))
  end as code,
  case when count(distinct description) > 1
       then 'Various'
       else max(description)
  end as description,
  sum(amount) as amount
from your_table
group by some_date
order by some_date;

db<>fiddle