MySQL 时间维度分组统计(年、季度、月、周、日)
SELECT
date_id,
YEAR(date_id) AS year,
QUARTER(date_id) AS quarter,
MONTH(date_id) AS month,
WEEK(date_id, 1) AS week,
DAYOFMONTH(date_id) AS day,
COUNT(*) AS total_events
FROM
(SELECT
date_sub(date('2023-03-12'), INTERVAL (cast(help_topic_id as signed) % 30) DAY) as date_id
FROM
mysql.help_topic
WHERE
help_topic_id < 30) as dates
GROUP BY
date_id
ORDER BY
date_id;
这个示例代码使用了一个子查询来生成一系列日期(从 '2023-03-12' 起的 30 天内的日期),然后根据这些日期进行分组统计。这里使用了 MySQL 的 date_sub
函数和 INTERVAL
来生成指定的日期序列。然后,使用 YEAR()
, QUARTER()
, MONTH()
, WEEK()
, DAYOFMONTH()
函数来提取日期的年、季度、月、周、日等信息,并进行统计。这个例子展示了如何在 MySQL 中进行时间维度的统计分析。
评论已关闭