Mysql:每月统计记录(包括零)
Posted
技术标签:
【中文标题】Mysql:每月统计记录(包括零)【英文标题】:Mysql: Count records (including zero) per month 【发布时间】:2010-08-15 10:31:26 【问题描述】:我正在尝试计算表中的记录并按日期对它们进行分组。我当前的查询如下所示:
SELECT
count(*),
MONTH(time) as month,
YEAR(time) as year
FROM
myTable
GROUP BY
month, year
ORDER BY
year, month
这行得通,除了我还想计算没有记录存在的月份。
有人可以就如何实现这一点提供建议/建议吗?
【问题讨论】:
【参考方案1】:在 mysql 中执行此操作的最简单方法是创建一个名为 months
的表,其中列出了您感兴趣的所有月份,并对表使用 LEFT JOIN。
SELECT
YEAR(time) AS year
MONTH(time) AS month,
COUNT(myTable.year) AS cnt,
FROM months
LEFT JOIN myTable
ON months.year = myTable.year
AND months.month = myTable.month
GROUP BY months.year, months.month
ORDER BY months.year, months.month
但是,由于这主要是一个演示问题,通常只需像您已经在执行的操作一样运行查询并在客户端(例如 php)中转换结果。
【讨论】:
以上是关于Mysql:每月统计记录(包括零)的主要内容,如果未能解决你的问题,请参考以下文章