【发布时间】:2019-07-13 15:19:43
【问题描述】:
我有如下三个表:
表一:
user_id user_label code1 count1
------- ---------- ------ ------
1 x a 1
1 x c 1
1 y a 1
2 x a 1
表二:
user_id user_label code2 count2
------- ---------- ------ ------
1 x b 1
1 x d 2
1 y b 1
2 x b 1
表 3:
user_id user_label code3 count3
------- ---------- ------ ------
1 x c 1
1 x e 1
1 y c 1
2 x c 1
我想将这三个表中相同的 user_id + user_label + code 的计数相加,并保留其余记录,所需的结果如下所示:
user_id user_label code total_count
------- ---------- ------ ------
1 x a 1
1 x c 2
1 x b 1
2 x d 2
1 x e 1
1 y a 1
1 y b 1
1 y c 1
2 x a 1
2 x b 1
2 x c 1
记录 (1,x,c) 可以在表 1 和表 3 中找到,因此它们的计数应该相加,其余的在结果表中保持不变。
现在我想到的是使用如下的 UNION 操作:
SELECT * FROM tb1 UNION
SELECT * FROM tb2 UNION
SELECT * FROM tb3
这将为我提供这三个表中所有不同的行,但我不确定如何对计数进行求和,任何帮助或建议将不胜感激。
【问题讨论】:
-
使用联合查询作为子查询,外部查询进行分组和求和。 (我在手机上打字,否则我会提交解决方案作为答案)
标签: sql select amazon-redshift union