And*_*ndy 5 mysql sql group-by
我正在尝试计算表格中的记录并按日期对它们进行分组.我当前的查询类似于以下内容:
SELECT
count(*),
MONTH(time) as month,
YEAR(time) as year
FROM
myTable
GROUP BY
month, year
ORDER BY
year, month
Run Code Online (Sandbox Code Playgroud)
这是有效的,除了我还想得到几个月没有记录的计数.
有人可以提供有关如何实现这一目标的建议/建议吗?
在 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
Run Code Online (Sandbox Code Playgroud)
然而,由于这主要是一个演示问题,因此通常更容易,只需像您已经在执行的那样运行查询并在客户端(例如 PHP)中转换结果即可。