当前位置: 首页 > news >正文

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

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客户、紧急任务)。


相关文章:

  • SSE单向消息推送(get请求)
  • 神经网络 - 前馈神经网络(FNN)、全连接神经网络(FCNN)和卷积神经网络(CNN)的区别与联系
  • MySQL的多表查询
  • 软考《信息系统运行管理员》- 6.1 信息系统安全概述
  • Oracle数据库数据编程SQL<2.2 DDL 视图、序列>
  • lxd-dashboard 图形管理LXD/LXC
  • Processor System Reset IP 核 v5.0(vivado)
  • Allegro界面颜色改变设置
  • Qt应用系统托盘区域显示、托盘菜单示例
  • 快速排序不啦不啦
  • 嵌入式Linux网络编程:UNIX Domain Socket进程间通信(IPC)
  • Maven版本统一管理
  • 如何在Webpack中配置别名路径?
  • Google开源机器学习框架TensorFlow探索更多ViT优化
  • Ubuntu 系统无法远程连接?完整排查指南与解决方案
  • RedHat7.6_x86_x64服务器(最小化安装)搭建使用记录(二)
  • 51c自动驾驶~合集15
  • Modbus协议开发入门
  • LangChain基础系列之LLM接口详解:从原理到实战的全攻略
  • OSI 七层模型和四层模型(TCP/IP 模型)
  • 福建厦门市副市长、市公安局局长陈育煌出任吉林省公安厅厅长
  • 中国创面修复学科发起者之一陆树良教授病逝,享年64岁
  • 摩根士丹利:对冲基金已加码,八成投资者有意近期增配中国
  • 茅台1935今年动销达到预期,暂无赴港上市计划!茅台业绩会回应多个热点
  • A股高开高走:沪指涨0.82%,创指涨2.63%,超4100股收涨
  • 18世纪“精于剪切、复制、粘贴”的美国新闻界