小编典典

SQL:分为两列

sql

我有下表:

---------------------
| 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                    |
-----------------------------------------

有任何想法吗?


阅读 228

收藏
2021-04-28

共1个答案

小编典典

使用leastgreatest

select no1,no2,sum(amount) over(partition by least(no1,no2),greatest(no1,no2)) as total
from tbl
2021-04-28