我有一张桌子:
NAME MONEY
Jane 100
Chris -100
Jane 50
Ann -10
Jane -25
Ann 17
而且我想写一个查询来汇总数据,在一列中应该只有正数量的od钱在另一列只有负数 . 输出应如下所示:
NAME SUM_POSITIVE SUM_NEGATIVE
Jane 150 -25
Chris 0 -100
Ann 17 -10
查询:
select name, sum(money) from TABLE where money>0 group by name
union
select name, sum(money) from TABLE where money<0 group by name;
几乎显示我想要的,但结果有重复的名称和两列而不是三列:
NAME SUM
Ann -10
Ann 17
Jane -25
Jane 150
Chris -100
请帮我改写我的查询以纠正输出 .
2 回答
您可以改为进行条件聚合:
用例何时
您正在获取重复名称因为联合运算符仅合并所有列值相同的行,因为Ann包含-10和17,这是不同的,因此它的副本