MySQL 中按周分组:YEARWEEK 函数
MySQL 提供了一个 YEARWEEK 函数,可用于按周对数据进行分组。此函数返回一个字符串,表示给定日期的年份和周数。例如:
SELECT YEARWEEK('2023-03-08')
返回“202309”。这表示 2023 年 3 月 8 日属于 2023 年的第 9 周。
YEARWEEK 函数包含一个可选的第二个参数,用于指定周开始模式。默认值为 1,表示一周从星期日开始。模式 0 表示一周从星期一开始,模式 2 表示一周从星期六开始。
使用 YEARWEEK 函数按周对数据进行分组:
SELECT YEARWEEK(date, 0), COUNT(*) FROM table GROUP BY YEARWEEK(date, 0)
此查询按一年中的第几周对“表”中的行进行分组,假设每周从星期一开始。 “COUNT(*)”函数计算每周的行数。
组合 YEAR 和 WEEK 函数
按周分组的另一种方法是使用YEAR 和 WEEK 函数的组合。如果您想要更多地控制分组逻辑,这会很有用。例如,以下查询按年份和周数对数据进行分组,无论周开始模式如何:
SELECT YEAR(date), WEEK(date), COUNT(*) FROM table GROUP BY YEAR(date), WEEK(date)
编辑:
正如 Martin 在评论中,你也可以使用下面的公式按周分组:
CONCAT(YEAR(date), '/', WEEK(date))
这种方式可能比使用YEARWEEK 函数。
以上是如何在 MySQL 中按周对数据进行分组?的详细内容。更多信息请关注PHP中文网其他相关文章!