0
我有一个具有以下字段的表:替代MySQL查询在子查询总结
date,amount,status
和我有每天(引)同时返回的款额,以及只有查询给定状态的总和(SOLD)。
这很慢,我试图重写查询没有成功。
原来的查询是:
SELECT
YEAR(FROM_UNIXTIME(date)) as Year,
lpad(MONTH(FROM_UNIXTIME(date)), 2, 0) as Month,
lpad(DAY(FROM_UNIXTIME(date)), 2, 0) as Day,
(SELECT
sum(amount)
FROM
mytable
where
status = 'SOLD'
and YEAR(FROM_UNIXTIME(date)) = Year
and lpad(MONTH(FROM_UNIXTIME(date)), 2, 0) = Month
and lpad(DAY(FROM_UNIXTIME(date)), 2, 0) = Day) as Sold,
(SELECT
sum(amount)
FROM
mytable
WHERE
YEAR(FROM_UNIXTIME(date)) = Year
and lpad(MONTH(FROM_UNIXTIME(date)), 2, 0) = Month
and lpad(DAY(FROM_UNIXTIME(date)), 2, 0) = Day) as Quoted
FROM
mytable
group by Year , Month , Day
输出看起来像这样(年月日SUM):
2013 12 01 3442.00
有没有更好的方式来写这个所以它立即执行?表中的记录少于10,000条。
对于初学者来说,我会分裂的年,月,日场的日期,因为这些都需要大量的。 – tehvan