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

大数据学习(111)-group by与partition by

🍋🍋大数据学习🍋🍋

🔥系列专栏: 👑哲学语录: 用力所能及,改变世界。
💖如果觉得博主的文章还不错的话,请点赞👍+收藏⭐️+留言📝支持一下博主哦🤞


PARTITION BY 和 GROUP BY 是 SQL 中用于数据分组或划分的两个不同概念,尽管它们在某些场景下看起来可能相似,但它们的目的和用法有显著的区别。

1. GROUP BY

  • 目的
    • GROUP BY 用于将查询结果按一个或多个列进行分组,并对每组数据执行聚合操作(如 SUMAVGCOUNT 等)。
    • 它通常用于生成汇总信息。
  • 特点
    • GROUP BY 会对结果集进行聚合,最终返回的结果集是分组后的数据,原始行可能会被合并。
    • 适用于需要统计或汇总数据的场景。
  • 语法示例
    SELECT department, COUNT(*) AS employee_countFROM employeesGROUP BY department;
    解释
    • 按 department 列分组,并统计每个部门的员工数量。
    • 返回的结果集中,每个部门只有一行数据。

2. PARTITION BY

  • 目的
    • PARTITION BY 是窗口函数(Window Function)的一部分,用于将数据划分为逻辑上的分区(partition),然后在每个分区内执行计算。
    • 它不会减少结果集的行数,而是为每一行分配一个分区,并基于分区内的数据执行计算。
  • 特点
    • PARTITION BY 不会对数据进行聚合,而是保持原始行,并在每个分区内计算结果(如排名、累计和等)。
    • 常用于需要分析每个分区内的数据,但又不希望丢失原始行信息的场景。
  • 语法示例
    SELECT employee_id, department, salary,
    RANK() OVER (PARTITION BY department ORDER BY salary DESC) AS rank_in_department
    FROM employees;
    解释
    • 按 department 列划分分区,并在每个分区内根据 salary 降序为每个员工分配排名。
    • 返回的结果集中,每个员工仍然有一行数据,只是增加了一列 rank_in_department

主要区别

特性GROUP BYPARTITION BY
目的聚合数据,生成汇总结果在分区内计算,不聚合数据
结果集行数减少行数,每个分组只返回一行保持原始行数,每行增加计算结果
适用场景统计、汇总数据分析分区内的数据,保留原始行信息
配合函数聚合函数(如 SUMAVGCOUNT 等)窗口函数(如 RANKROW_NUMBERSUM 等)

总结

  • 如果你需要汇总数据(如统计每个部门的员工数量),使用 GROUP BY
  • 如果你需要在分区内计算结果(如每个部门内的员工排名),使用 PARTITION BY

相关文章:

  • Java—ConcurrentHashMap
  • JAVA:Web安全防御
  • CSS 记载
  • 客户端本地搭建
  • LeetCode算法题(Go语言实现)_55
  • 蓝桥杯中的知识点
  • 正点原子TFTLCD扩展
  • FreeRTOS-任务的创建删除,挂起与恢复
  • JavaFX深度实践:从零构建高级打地鼠游戏(含多物品与反馈机制)
  • Springboot 集成 RBAC 模型实战指南
  • C++IO流
  • Electron使用WebAssembly实现CRC-32 原理校验
  • 【项目】基于MCP+Tabelstore架构实现知识库答疑系统
  • 测试OMS(订单管理系统)时,对Elasticsearch(ES)数据和算法数据进行测试(如何测试几百万条数据)
  • UDP协议理解
  • 【(保姆级教程)Ubuntu24.10下部署Dify】
  • 【C语言】动态内存的常见错误
  • JavaFX 实战:从零打造一个功能丰富的英文“刽子手”(Hangman)游戏
  • NLP高频面试题(五十一)——LSTM详解
  • 玩转Docker | 使用Docker部署DashMachine个人书签工具
  • 全国人大常委会调研组在宁波调研,张庆伟带队钟山易炼红参加
  • 上海银行换帅,顾建忠已任党委书记
  • 女子遭前男友泼汽油烧伤致残案二审庭审:检方抗诉称一审量刑不当
  • 张文宏:加强基层医疗体系建设,提升传染病早期监测和预警能力
  • 高架上2名儿童从轿车天窗探出身来,驾驶员被记3分罚200元
  • 一季度浙江实现生产总值22300亿元,同比增长6.0%