查询1:
SELECT SUM(duration) FROM table_name WHERE timestart >= past24hours
查询2:
SELECT SUM(duration) FROM table_name WHERE timestart >= past7days
大家好,我想结合以上两个查询并在查询中得到总和。 有什么办法吗?
目前我在过去的30天和365天内还有2个以上的查询。
任何人都请帮忙。
答案 0 :(得分:1)
您可以使用union
喜欢
SELECT SUM(duration) FROM table_name WHERE timestart >= past24hours
UNION
SELECT SUM(duration) FROM table_name WHERE timestart >= past7days
答案 1 :(得分:0)
SELECT SUM(duration), 1 FROM table_name WHERE timestart >= '$date' - INTERVAL 1 DAY
UNION
SELECT SUM(duration), 2 FROM table_name WHERE timestart BETWEEN '$date' - INTERVAL 7 DAY AND '$date' - INTERVAL 1 DAY
这样你就不会在过去的24小时内获得两次时间的行
答案 2 :(得分:0)
一种方法是使用不同的别名获得所有总和为
select
t.sum1,t.sum2
from(
select
sum(case when timestart >= past24hours then duration END) as sum1,
sum(case when timestart >= past7days then duration END) as sum2
from table_name
)t
您可以在查询中添加任意数量的总和,并提供别名并将其添加到选择列表中,以便稍后可以使用服务器端脚本对其进行解析。
使用UNION
,它将返回相同的column/alias
。如果UNION
中的总和值相同,那么它只会获得一个并且要摆脱它,您可以使用UNION ALL