20个数据分析师必知必会的SQL查询语句

20个数据分析师必知必会的SQL查询语句
最新回答
柠七菇凉

2026-02-15 20:34:45

以下是20个数据分析师必知必会的SQL查询语句,涵盖数据查询、筛选、聚合、操作及表管理核心技能

  • 基础查询

    查询所有列数据:SELECT * FROM 表名;

    查询指定列数据:SELECT 列1, 列2 FROM 表名;

  • 数据筛选

    单条件筛选:SELECT * FROM 表名 WHERE 条件;(如 WHERE Location = 'Germany')

    多条件组合筛选:SELECT * FROM 表名 WHERE 条件1 AND/OR 条件2;(如 WHERE salary > 10000 AND Location = 'UK')

    筛选非空值:SELECT * FROM 表名 WHERE 列名 IS NOT NULL;

    通配符模糊匹配:SELECT * FROM 表名 WHERE 列名 LIKE '%模式%';(如 LIKE '%a%' 匹配含字母“a”的值)

  • 数据去重与排序

    去重查询:SELECT DISTINCT 列1, 列2 FROM 表名;

    单列排序:SELECT * FROM 表名 ORDER BY 列名 [ASC|DESC];(默认升序,DESC为降序)

    多列排序:SELECT * FROM 表名 ORDER BY 列1 DESC, 列2 ASC;(按优先级依次排序)

  • 字符串与数学运算

    字符串拼接:SELECT CONCAT(列1, '分隔符', 列2) FROM 表名;(如拼接姓名)

    数学运算:SELECT 数值列1 +/?/*// 数值列2 FROM 表名;(如计算薪资差额 TotalSalary - GrossSalary)

  • 聚合函数

    计数:SELECT COUNT(列名) FROM 表名;(统计非空行数)

    平均值:SELECT AVG(数值列) FROM 表名;(如计算平均工资)

    最大值:SELECT MAX(数值列) FROM 表名;(如查找最高薪资)

    最小值:SELECT MIN(数值列) FROM 表名;(如查找最低薪资)

  • 多表操作

    并集(保留重复):SELECT 列名 FROM 表1 UNION ALL SELECT 列名 FROM 表2;

    交集(仅保留共有值):SELECT 列名 FROM 表1 INTERSECT SELECT 列名 FROM 表2;

  • 数据操作

    插入数据:INSERT INTO 表名 (列1, 列2) VALUES (值1, 值2), (值3, 值4);(支持批量插入)

    更新数据:UPDATE 表名 SET 列1 = 值1, 列2 = 值2 [WHERE 条件];(如更新薪资 SET Salary = 20000)

    删除数据:DELETE FROM 表名 [WHERE 条件];(无条件则清空全表)

  • 表管理

    创建表:

    CREATE TABLE 表名 ( 列1 数据类型 [约束], 列2 数据类型 [约束]);(如 CREATE TABLE Employee (EmployeeID INT, FirstName VARCHAR(50));)

    删除表:DROP TABLE 表名;(彻底删除表结构及数据)

  • 高级技巧

    分组聚合:SELECT 列1, COUNT(*) FROM 表名 GROUP BY 列1;(如统计各部门人数)

    子查询:SELECT * FROM 表1 WHERE 列1 IN (SELECT 列1 FROM 表2);(嵌套查询实现复杂逻辑)

    分页查询:SELECT * FROM 表名 LIMIT 偏移量, 行数;(如 LIMIT 10, 20 跳过前10行取20行)

应用场景说明

  • 数据分析师需频繁使用聚合函数(如AVG、COUNT)计算指标,结合GROUP BY实现分组统计。
  • 数据清洗阶段常用DISTINCT去重、IS NOT NULL处理缺失值,或通过LIKE和通配符筛选异常格式数据。
  • 多表关联分析时,UNION ALL合并同类数据,INTERSECT提取交集可辅助交叉验证。
  • 表操作语句(如CREATE TABLE、DROP TABLE)适用于数据仓库建模或临时表管理。

掌握这些语句可覆盖数据分析中80%以上的SQL需求,建议结合实际业务场景练习优化查询效率(如索引使用、避免SELECT *等)。