首页/数据/SQL 速查/按天/月聚合统计
本包目录(311 条)
查询基础33 条连接与子查询40 条
聚合与窗口函数54 条
函数速查60 条变更与事务52 条性能与执行计划72 条

按天/月聚合统计

时间维度的报表基础:把时间戳截断到天或月再分组;注意索引友好写法与跨天边界口径。

SQL 速查数据更新于 2026-10-12

示例

示例
-- MySQL
SELECT DATE(created_at) AS day, COUNT(*) AS cnt
FROM orders
WHERE created_at >= '2024-06-01'
  AND created_at <  '2024-07-01'
GROUP BY DATE(created_at)
ORDER BY day;

PostgreSQL 按周截断

PostgreSQL 按周截断
SELECT date_trunc('week', created_at) AS wk, COUNT(*)
FROM orders
GROUP BY 1
ORDER BY 1;
MySQLDATE() 取天;YEAR_MONTH? 用 DATE_FORMAT 自定义
PostgreSQLdate_trunc 支持 week/quarter 等粒度
过滤范围条件写在原始时间列上,利于走索引

易错点

  • WHERE 里对时间列做函数会丢索引,改成范围条件再分组截断
  • 按周截断的周起始日因数据库/区域设置不同,跨系统对报表要先对齐口径

数据来源与参考

  • MySQL 8.0 Reference Manual · Date Functions
  • PostgreSQL Documentation · date_trunc
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌