我有3个独立的查询,我想将每个查询中获得的值相加。这些查询获得每月每天的计数值:
查询一个
day|val|
1 | 2
2 | 6
3 | 5*
4 | 2
5 | 7
查询2
day|val|
2 | 1
3 | 5*
10 | 5
11 | 2
12 | 7
我正在使用说明:
select day, SUM(val)
from query1 UNION query2
group by day
我发现当重复一个值而不是一个值时,它会使用其中一个重复值,对于axample,天数3都有值5.该指令只给出值5而不是10。
这应该会给我一个月内每天总价值的报告,但报告错误是因为UNION引起的这个问题 我该如何解决?
答案 0 :(得分:1)
union
会删除重复项。相反,您应该使用union all
:
SELECT day, SUM(val)
FROM query1 UNION ALL query2
GOURP BY day
答案 1 :(得分:0)
你应该做
select day, sum(val)
from (
select day,val from table1
union all
select day,val from table2) t
group by day;
union all
保留重复项。