高级SQL技巧与优化实战

以下是提升 SQL 技能的 20 个高级技巧,涵盖复杂查询优化、性能调优和高效数据处理,适用于实际开发场景:


一、窗口函数(Window Functions)

核心用途:对数据子集进行聚合计算,保留原始行信息。

-- 计算每个部门的薪资排名
SELECT 
    employee_id, 
    department_id, 
    salary,
    ROW_NUMBER() OVER (PARTITION BY department_id ORDER BY salary DESC) AS rank
FROM employees;

常用函数

  • ROW_NUMBER(), RANK(), DENSE_RANK()
  • LEAD(), LAG()(访问相邻行数据)
  • SUM()/AVG() OVER()(动态聚合)

二、公共表表达式(CTE)

优势:提升复杂查询的可读性,支持递归查询。

-- 递归查询组织架构树
WITH RECURSIVE org_tree AS (
    SELECT id, name, parent_id, 1 AS level
    FROM departments
    WHERE parent_id IS NULL
    UNION ALL
    SELECT d.id, d.name, d.parent_id, ot.level + 1
    FROM departments d
    INNER JOIN org_tree ot 

你可能感兴趣的:(sql)