我有一個錶店活動 一個想從列表生成概述選擇總和(總)的基礎上的日期(unixtime)MySQL的選擇多組的多個地方
喜歡選擇SUM(總),其中日期123456789之間和2000000個 出頭這樣的..
,但我想獲得更多的日期範圍了一個查詢
有一個可列結果像
- 總和今天
等等昨天
我有一個錶店活動 一個想從列表生成概述選擇總和(總)的基礎上的日期(unixtime)MySQL的選擇多組的多個地方
喜歡選擇SUM(總),其中日期123456789之間和2000000個 出頭這樣的..
,但我想獲得更多的日期範圍了一個查詢
有一個可列結果像
等等昨天
你不需要UNION
。像這樣的東西應該工作:
select SUM(total) as Total,
SUM(
case when date >= DATE_SUB(CONCAT(CURDATE(), ' 00:00:00'), INTERVAL 2 DAY)
and date < DATE_SUB(CONCAT(CURDATE(), ' 00:00:00'), INTERVAL 1 DAY) then total end
) TwoDaysAgoTotal,
SUM(
case when date >= DATE_SUB(CONCAT(CURDATE(), ' 00:00:00'), INTERVAL 1 DAY)
and date < CONCAT(CURDATE(), ' 00:00:00') then total end
) as OneDayAgoTotal,
SUM(
case when date >= CONCAT(CURDATE(), ' 00:00:00') then total end
) as TodayTotal
from list
where date between 123456789 and 2000000
聯盟的聲明不解決你的情況? http://dev.mysql.com/doc/refman/4.1/pt/union.html
聯合實際上它。但它真的很慢(在這一刻我用SUM()獲取16天的歷史記錄,並使用16個選擇...選擇日期(它在unixtime(不是sql date))..比聯盟快得多......但是這個真的很糟糕的代碼,我想性能來是因爲日期存儲爲整數而不是SQL日期 – Nullx8
你可以聯合多個查詢在一起,如果有幫助。 – bumperbox