【聚合函数、分组、排序笔记】

1.聚合函数

1.1用途:对数据集进行统计计算,返回单一汇总值。

  • 统计总数:COUNT(用户数)

  • 计算平均值:AVG(销售额)

  • 求和:SUM(订单金额)

  • 找极值:MAX(温度)、MIN(库存)

示例

SELECT SUM(sales) AS total_sales FROM orders; -- 计算总销售额

1.2常用聚合函数

函数 作用 示例
COUNT 统计行数(或非空值数) COUNT(*) 统计所有行(含空值)
SUM 求和 SUM(sales) 计算某列的总和
AVG 计算平均值 AVG(score) 求某列的平均值
MAX 找最大值 MAX(price) 找某列的最大值
MIN 找最小值 MIN(temperature) 找某列的最小值
GROUP_CONCAT 合并字符串(MySQL) GROUP_CONCAT(name) 合并分组内的字符串

 1.3核心用法

基本语法

SELECT 聚合函数(列名) FROM 表名 [WHERE 条件];

示例

-- 计算订单总金额
SELECT SUM(amount) AS total_amount FROM orders;

-- 统计用户总数(排除 NULL)
SELECT COUNT(user_id) FROM users;
结合 GROUP BY 分组

聚合函数常与 GROUP BY 配合,按指定列分组统计:

-- 按部门统计平均工资
SELECT department, AVG(salary) AS avg_salary 
FROM employees 
GROUP BY department;
结合 DISTINCT 去重

唯一值进行统计:

-- 统计不重复的城市数量
SELECT COUNT(DISTINCT city) FROM customers;

实际应用场景

  1. 业务指标统计

    总销售额、日均活跃用户数(DAU)、订单平均金额等。
  2. 数据对比分析

    按地区/时间维度对比销量、用户增长率等。
  3. 极值查找

    找出最高分、最低库存、最畅销商品等。

2.分组

2.1分组:功能通过将数据按特定维度划分,将分散的信息归类为逻辑单元,使统计和分析更具针对性。

分组的典型应用场景

  1. 多维分析
    按不同属性(如时间、地区、类别)拆分数据,观察指标变化。例如:

    • 按周统计网站访问量,分析流量波动。

    • 按用户年龄段分组,计算消费金额均值。

  2. 数据去重与统计
    结合 COUNT(DISTINCT 列名),统计分组内唯一值的数量。例如:

    • 统计每个城市的独立访客数。

  3. 分层汇总
    在复杂报表中,通过多列分组实现层级汇总。例如:

-- 按年份和季度统计销售额
SELECT year, quarter, SUM(sales) 
FROM orders 
GROUP BY year, quarter;

2.2分组的注意事项

  1. 分组列的选择

    • SELECT 后的列必须满足以下条件之一:

      • 出现在 GROUP BY 子句中(分组依据)。

      • 被聚合函数包裹(如 SUM(列名))。

    • 错误示例:SELECT product, price FROM orders GROUP BY product;
      price 未被分组或聚合,导致多值冲突)。

3排序

3.1当数据像未分类的快递包裹堆满仓库时,排序就是那双整理的手。它让混乱的表格瞬间变得像钢琴键般整齐排列,指尖滑动间便能捕捉到隐藏的节奏与规律。

3.2排序的基础语法与逻辑

通过 ORDER BY 子句定义排序规则,支持单列或多列排序:

SELECT 列1, 列2 
FROM 表名 
ORDER BY 列1 [ASC|DESC], 列2 [ASC|DESC]; 

3.3多列排序的优先级

当单列存在重复值时,可通过多列排序细化规则。左侧列优先级高于右侧列

-- 先按部门升序,部门相同时按工资降序
SELECT department, name, salary 
FROM employees 
ORDER BY department ASC, salary DESC; 

3.4排序的典型应用场景

  1. 排行榜生成

    • 按销量、评分、点击量等指标生成 TOP N 列表。

  2. 时间序列分析

    • 按日期排序观察趋势(如用户增长、收入波动)。

  3. 分层展示

    • 优先展示重要数据(如VIP客户、紧急任务)。


你可能感兴趣的:(笔记)