如何按月汇总表中的值?

时间:2014-11-21 19:29:51

标签: php mysql

我有一个带有字段的mysql表:

id - primary key 
values - some double values
dt = datetime

这张表有很多记录。表中的每个条目对应一天,以dt记录。

如何从某个日期算起计算月份值的总和?

例如,我想从指定日期获取值。我只是向表格发送请求

SELECT `values` FROM `some_table` WHERE `dt` >= '2014-11-21 21:26:00' LIMIT 7

在这里,我必须总结每个月的天数值。

如何提出这样的要求?

2 个答案:

答案 0 :(得分:3)

使用EXTRACT。然后,您可以对年份和月份进行分组,并获得它们的值的总和。

SELECT
    EXTRACT(MONTH FROM dt) as month, 
    EXTRACT(YEAR FROM dt) as year, 
    SUM(values) as total
FROM 
    some_table
GROUP BY 
    month,
    year
ORDER BY 
    year DESC, 
    month DESC

答案 1 :(得分:0)

您可以使用DATE_FORMAT()功能从日期列中提取年份和月份,然后您必须使用GROUP BY查询:

SELECT
  DATE_FORMAT(`dt`, '%Y-%m') AS year_month,
  SUM(values) AS total
FROM
  some_table
WHERE
  `dt` >= '2014-11-21 21:26:00'
GROUP BY
  DATE_FORMAT(`dt`, '%Y-%m')