我有下表:
--------------------- | No1 | No2 | Amount --------------------- | A | B | 10 | | C | D | 20 | | B | A | 30 | | D | C | 40 | ---------------------
我想对两列(No1,No2)的分区求和,但是当两列中的值更改时,它也应该分组。示例为:AB = BA
这将是我的预期结果:
----------------------------------------- | No1 | No2 | Sum(Amount) over partition ----------------------------------------- | A | B | 40 | | C | D | 60 | | B | A | 40 | | D | C | 60 | -----------------------------------------
有任何想法吗?
使用least和greatest。
least
greatest
select no1,no2,sum(amount) over(partition by least(no1,no2),greatest(no1,no2)) as total from tbl