SELECT和GROUP BY月有效

时间:2014-07-10 08:17:42

标签: mysql sql select optimization group-by

我有一个date类型的列。我想每个月对特定年份的行进行分组。 我做了以下事情:

SELECT SUM(price), DATE_FORMAT(production_date, '%Y%m')  
FROM TABLE  
WHERE YEAR(production_date) = ?    
GROUP BY 2   

有更好/更有效的方法吗?

2 个答案:

答案 0 :(得分:1)

而不是使用YEAR函数指定年份

SELECT SUM(price), DATE_FORMAT(production_date, '%Y%m')  
FROM TABLE  
WHERE YEAR(production_date) = 2014
GROUP BY 2

像这样指定

SELECT SUM(price), DATE_FORMAT(production_date, '%Y%m')  
FROM TABLE  
WHERE production_date BETWEEN '2014-01-01' AND '2014-12-31'
GROUP BY 2

第二个查询使db能够使用production_date

上的索引

答案 1 :(得分:0)

你几乎在那里:)

SELECT SUM(price), MONTH(production_date)  
FROM TABLE  
WHERE YEAR(production_date) = ?    
GROUP BY 2