目录

SQL 聚合前为什么要先对子表预汇总

`LEFT JOIN` 后直接做 `SUM`、`COUNT`,结果经常被放大,根源不在数据库,而在 JOIN 先扩行、聚合后执行的逻辑。本文用订单统计场景说明为什么要先对子表 `GROUP BY` 预汇总,再讲清过滤条件、`COALESCE`、`DISTINCT` 误区,以及 CTE 与子查询的选择方法。

SQL 聚合前为什么要先对子表预汇总

SQL 查询同一张表的层级关系,员工与经理该怎么连?

在同一张表里查询员工与经理这类层级关系时,关键不只是会写自连接,还要分清什么时候该用 LEFT JOIN、条件该写在 ON 还是 WHERE、以及索引是否到位。本文用员工表场景梳理正确写法、常见误区与多层查询边界。

SQL 查询同一张表的层级关系,员工与经理该怎么连?

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

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

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

SQL 子查询如何查询第二高的薪资

查询“第二高薪资”看起来像一道基础 SQL 题,真正容易出错的却是并列值、空结果和方言兼容性。本文把常见写法放到同一张判断表里,说明各自适用场景、限制和为什么多数情况下应优先用嵌套 `MAX()` 子查询。

SQL 子查询如何查询第二高的薪资

Go 数据库框架怎么选:GORM、Ent 与 SQLC 的取舍逻辑

Go 数据库框架的争论,核心已经不只是 API 好不好用,而是运行时反射与编译期代码生成两条路线的取舍。把 GORM、Ent、SQLC 放到同一业务场景里比较后,可以更清楚地判断:你到底更需要上线速度、重构安全,还是对 SQL 与性能的绝对掌控。

Go 数据库框架怎么选:GORM、Ent 与 SQLC 的取舍逻辑

SQL 子查询如何实现库存余额计算

库存余额看似只是“期初 + 入库 - 出库”,但一旦拆成多个子查询,常见问题就会集中冒出来:子查询位置不合法、JOIN 放大结果、NULL 传染、别名无法过滤,以及时间条件放错层级。本文按这些高频误区重组写法,并给出更适合批量算库存的 SQL 结构。

SQL 子查询如何实现库存余额计算

Node.js 应用在 Linux 上如何优化数据库连接

Node.js 应用跑在 Linux 上后,数据库连接往往最先成为性能瓶颈。要把这块优化稳住,不能只盯连接池,而要同时看应用异步模型、PostgreSQL 参数、监控手段、读写分离和缓存策略,最后再用定期维护把效果维持住。

Node.js 应用在 Linux 上如何优化数据库连接
更多信息

专题列表