我有一个date
类型的列。我想每个月对特定年份的行进行分组。
我做了以下事情:
SELECT SUM(price), DATE_FORMAT(production_date, '%Y%m')
FROM TABLE
WHERE YEAR(production_date) = ?
GROUP BY 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