目录

怎样用 SQL 窗口函数计算相邻订单时间差

在 SQL 里计算相邻订单时间差,关键不只是 `LAG()`,还包括按正确时间字段排序、按用户分组,以及针对不同数据库选择合适的时间差函数。本文用 MySQL、PostgreSQL、SQL Server 的写法对照说明,并补上空值处理和索引检查的实际要点。

怎样用 SQL 窗口函数计算相邻订单时间差

SQL 中如何计算分组移动平均值?

分组移动平均在 SQL 里不难,真正容易出错的是窗口怎么定义、分组是否隔离,以及数据库版本对 `ROWS`、`RANGE` 的支持差异。本文按 MySQL、PostgreSQL、SQL Server 与 SQLite 分别梳理可用写法,并补上边界行与 `NULL` 处理时最常见的误区。

SQL 中如何计算分组移动平均值?

SQL 触发器为什么无法直接更新复杂视图

复杂视图之所以不能像表一样直接更新,核心不在语法,而在数据库是否愿意替你拆解 DML。SQL Server 允许借助 INSTEAD OF 触发器接管写入,但所有分发表、字段映射和校验都要手写;MySQL 则直接禁止在视图上创建触发器。

SQL 触发器为什么无法直接更新复杂视图

怎样用 SQL 日期函数统计自然月环比

统计自然月环比,难点不在公式本身,而在“按日历月对齐”和“上月值如何准确关联”。本文按 MySQL 8.0+ 与 5.7 及以下两种场景,整理可直接套用的 SQL 写法,并补出时区、空值、除零和时间口径这些最容易让结果失真的细节。

怎样用 SQL 日期函数统计自然月环比

SQL 子查询如何查询连续登录用户

查询连续登录用户,关键不在“找前一天是否存在”,而在把无断档的日期序列识别成同一段。本文围绕连续登录定义、`ROW_NUMBER()` 分组写法、MySQL 5.7 替代方案与 `LEAD/LAG` 适用边界,整理出更适合上线使用的 SQL 思路。

SQL 子查询如何查询连续登录用户

SQL 中如何按年月分组统计订单数据?

按年月统计订单并不难,难点在于分组键是否稳定、展示是否直观,以及查询能否继续走索引。本文按 MySQL、PostgreSQL、SQL Server 和跨库写法分别整理可直接落地的方案,同时指出常见误区与性能边界。

SQL 中如何按年月分组统计订单数据?

SQL 中如何按日期分组并补齐缺失日期?

按日期分组后出现“断档”,通常不是 GROUP BY 写错,而是结果集里本来就没有那些日期。本文分别整理 PostgreSQL 的 `generate_series`、MySQL/SQL Server/Oracle 的日历表方案,并说明周/月分组、性能和边界数据里最容易踩的坑。 按日期统计时,结果里少几天、少几周,很多时候并不是 `GROUP BY` 写错了,而是数据源里根本没有这些日期。

SQL 中如何按日期分组并补齐缺失日期?

SQL 批量 INSERT 数据时,如何避免主键冲突

批量插入遇到主键或唯一键重复时,核心不是“怎么不报错”,而是按数据库方言选择真正的跳过写法。MySQL、PostgreSQL 和 SQL Server 的语义、锁行为与开销差异很大,用错语句往往会把简单去重变成阻塞和死锁问题。

SQL 批量 INSERT 数据时,如何避免主键冲突

SQL 如何对 JSON 字段进行分组聚合

JSON 字段里的数组或对象,不能直接拿来做 `GROUP BY`。这篇文章把 MySQL 8.0+ 的 `JSON_TABLE()` 和 PostgreSQL 的 `jsonb_array_elements()` 拆开说明,并补上类型转换、空值过滤、分组维度选择这些最容易把统计结果做错的关键点。 JSON 字段里有数组或对象时,不能直接 GROUP BY 。正确做法是先展开成行,再按主键或提取字段分组。

SQL 如何对 JSON 字段进行分组聚合
更多信息

专题列表