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

PostgreSQL 19新特性之GROUP BY ALL

当我们使用 GROUP BY 对数据进行分组统计时,需要列出查询结果中所有不是聚合函数的字段,例如:

SELECT dept_id, job_id, sex, count(*)
FROM employee 
GROUP BY dept_id, job_id, sex;

如果 GROUP BY 子句中缺少了某个分组字段,就会返回语法错误,例如:

SELECT dept_id, job_id, sex, count(*)
FROM employee 
GROUP BY dept_id, sex;SQL 错误 [42803]: 错误: 字段 "employee.job_id" 必须出现在 GROUP BY 子句中或者在聚合函数中使用

错误本身没有问题,因为不指定 job_id 分组字段的话逻辑上存在问题。查询结果中同一个部门(dept_id)、同一个性别(sex)可以有不同的职位(job),需要分别进行统计。

为了避免每次都需要输入完整的分组字段,PostgreSQL 19 增加了一个新的语法扩展:GROUP BY ALL。例如:

SELECT dept_id, job_id, sex, count(*)
FROM employee 
GROUP BY ALL;

这种语法更加简洁,尤其是当分组字段很多的时候。

不仅简单查询支持新的语法,连接查询、子查询等都可以使用。例如:

SELECT d.dept_name, j.job_title, e.sex, count(*)
FROM employee e
JOIN department d ON d.dept_id = e.dept_id 
JOIN job j ON j.job_id = e.job_id 
GROUP BY ALL;
http://www.dtcms.com/a/586081.html

相关文章:

  • 技能补全之Python AES GCM 加密存储
  • NCP13992 CS 分压计算
  • MySQL事务:如何保证ACID?MVCC到底如何工作?
  • 240-基于Python的医疗疾病数据可视化分析系统
  • 网站开发合同管辖权异议商务网站建设实训心得体会
  • 【CUDA笔记】01-入门简介
  • 教育网站制作方案php大型网站开发书籍
  • 深圳网站建设_请到中投网络wordpress 获取ip
  • Swift 6.2 列传(第五篇):方法键路径的 “通脉奇功”
  • 【网络系列】Tracing Header
  • AI时代,我们该如何学Python?《AIGC高效编程:Python从入门到高手》
  • 连云港公司网站优化服务做静态网站的开题报告
  • 【STL——常用排序、拷贝与替换算法】
  • 网站 做实名认证吗建设银行 网站无法打开
  • S2B2C系统推荐|商淘云:以全链路数字化能力重构产业生态的深度实践
  • 北京企业网站建设推荐服装设计公司排名
  • iis7 网站用户权限超融合系统
  • 机器学习实践项目(二)- 房价预测增强篇 - 模型训练与评估:从多模型对比到小网格微调
  • 物联网协议全景图
  • 使用 PostgreSQL 继承和分区方案的实现建议
  • Redisson 的 Watchdog 机制
  • 网站建设艾金手指六六12jsp网站设计教学做一体化教程
  • 网站主页与导航栏的设计定制开发小程序报价
  • Ascend C 编程模型揭秘:深入理解核函数、任务并行与流水线优化
  • Vue3 组件库 Element Plus
  • 网站设计的资质叫什么wordpress内页打不开
  • wap网站用什么服务器建站公司主要做那些业务
  • 移动端爬虫新贵:Mitmproxy抓包与脚本化改造App请求
  • 网站群建设代理wordpress 栏目权限
  • RV1126 NO.42:OPENCV形态学基础之一:膨胀