文章目录

  • GROUP BY 的基本使用
  • GROUP BY 多列分组,用逗号隔开
  • 使用GORUP BY时的注意点
  • GROUP BY中使用WITH ROLLUP

GROUP BY 的基本使用

使用GROUP BY将表中的数据分为若干组。

  1. 查询整个公司的平均工资。
# 查询整个公司的平均工资
SELECT AVG(salary)
FROM employees; -- 返回6461.682243
  1. 查询各个部门的平均工资。
# 查询各个部门的平均工资
SELECT department_id,AVG(salary)
FROM employees
GROUP BY department_id; -- 返回12行记录
  1. 查询各个工种的平均工资。
# 查询各个工种的平均工资
SELECT job_id,AVG(salary)
FROM employees
GROUP BY job_id; -- 返回19行记录

GROUP BY 多列分组,用逗号隔开

GROUP BY 多列分组,用逗号隔开。

  1. 查询各个部门中各个工种(或者各个工种中各个部门)的平均工资
# 查询各个部门中各个工种的平均工资
SELECT department_id,job_id,AVG(salary)
FROM employees
GROUP BY department_id,job_id; -- 返回20行记录# 查询各个工种中的各个部门的平均工资
SELECT job_id,department_id,AVG(salary)
FROM employees
GROUP BY job_id,department_id; -- 返回20行记录

使用GORUP BY时的注意点

  1. SELECT中出现的非组函数必须声明在GROUP BY中,而GROUP BY中声明的字段可以不出现在SELECT中。
# SELECT中出现的非组函数必须出现在GROUP BY中
SELECT department_id,job_id,AVG(salary)
FROM employees
GROUP BY department_id,job_id;# GROUP BY中声明的字段可以不出现在SELECT中
SELECT AVG(salary)
FROM employees
GROUP BY department_id,job_id;# 错误的示例
SELECT department_id,AVG(salary)
FROM employees
GROUP BY department_id,job_id; -- MySQL虽然没有报错,但数据依然不正确。Orcal中会直接报错。
  1. GROUP BY的位置:SELECT...FROM...WHERE...GROUP BY...ORDER BY...LIMIT...
# 查询各个部门的平均工资,且按照平均工资从低到高排序
SELECT department_id,AVG(salary) avg_sal
FROM employees
GROUP BY department_id
ORDER BY avg_sal ASC;

GROUP BY中使用WITH ROLLUP

使用WITH ROLLUP关键字后,在所有查询出的分组记录之后增加一条记录,该记录计算查询出的所有记录的总和。

# 查询整个公司的平均工资
SELECT AVG(salary)
FROM employees; -- 返回6461.682243# 查询各个部门的平均工资
SELECT department_id,AVG(salary)
FROM employees
GROUP BY department_id; -- 返回12行记录# 查询各个部门的平均工资
SELECT department_id,AVG(salary)
FROM employees
GROUP BY department_id
WITH ROLLUP; -- 返回13行记录,且最后一条记录的数值是6461.682243,即整个公司的平均工资

注意,当使用WITH ROLLUP时,不能同时使用ORDER BY进行结果排序。也就是说,WITH ROLLUPORDER BY是互相排斥的。

使用GROUP BY分组相关推荐

  1. group by 分组后 返回的是一个同属性的集合

    group by 分组后 返回的是一个同属性的集合  我们可以遍历该集合 转载于:https://www.cnblogs.com/classmethond/p/10164326.html

  2. 卷积网络基础知识---Group Convolution分组卷积

    Group Convolution分组卷积,以及Depthwise Convolution和Global Depthwise Convolution https://www.cnblogs.com/s ...

  3. 详解在group by分组查询中where 和 having的用法和区别。

    我地都知道sql 中 where 和 having 都是用来筛选条件的关键字. 而且having 一般和group by 一齐使用,   但是where 也可以用group by 一齐使用的. 下面用 ...

  4. mysql单列去重复group by分组取每组前几条记录加order by排序

    <div class="post"><h1 class="postTitle"><a id="cb_post_title ...

  5. group by 分组函数 的用法

    GROUP BY 是对结果集 进行分组 然后对每一组 ,可以对每一组进行统计 例如对每一组的某个字段进行统计 例如求和sum(column) 举个例子,我查询某个用户的某个时间段 的信息 1.没用到g ...

  6. mysql group by 聚合_浅析MySQL使用 GROUP BY 分组聚合与细分聚合

    1. 聚合函数(Aggregate Function) MySQL(5.7 ) 官方文档中给出的聚合函数列表(图片)如下: 除非另有说明,否则聚合函数都会忽略空值(NULL values). 2. 聚 ...

  7. group by 分组

    group by 分组:一般情况下group需与统计函数(聚合函数)一起使用才有意义 mysql中的五种统计函数: (1)max:求最大值 select max(goods_price) from g ...

  8. java中mysql分组查询_ES对应mysql的group by分组查询javaApi,多对多关系的分组查询...

    ES对应mysql的group by分组查询javaApi,多对多关系的分组查询 比如我这边有个下列订单索引数据,现在的需求是按用户(fmerchantId)和支付方式(fchannelId)进行分组 ...

  9. group by 分组后 再对所有的数据求和

    SELECT category, count( category ) AS category FROM dept GROUP BY category WITH ROLLUP; WITH ROLLUP ...

  10. MySQL5.7用group by分组根据组中某个字段的最大值求取那条记录(注意是整条记录)

    首先注意,取每组最大的数据和取每组最大的一条记录是两个概念,前者很简单直接分组,max()即可.另外由于我的是5.7.24版本,5.7版本普遍存在一个问题,就是select的字段只能是group by ...

最新文章

  1. php uncaught thrown,PHP异常详解
  2. solrCloud源码分析之CloudSolrClient
  3. 获山东科技最高奖-农业大健康·万书波:沉醉谋定花生增产
  4. Scala函数式编程:偏函数
  5. 聊聊flink Table的OrderBy及Limit
  6. 高级java技术web组件_(重温)JavaWeb--Servlet技术(二)(JavaWeb 的三大组件之一)...
  7. 强制关机对电脑的影响_笔记本电脑需要每天关机吗?长期开机对电脑有影响么?...
  8. 在Eclispe中编译运行jbox2d
  9. 【白皮书分享】2020智能体白皮书-华为.pdf(附下载链接)
  10. Java魔法堂:注解用法详解——@SuppressWarnings(转)
  11. Chrome扩展推荐
  12. Android抓包工具Fiddler的使用教程
  13. win8 性能测试软件,win8系统优化软件评测
  14. UVA 1391 - Astronauts(2-SET)
  15. “责任”也是一种竞争力:《穹顶之下》与美丽中国
  16. 100个最热门的国人开发开源软件
  17. Android相机预览,指定区域显示预览框,在区域内出现人脸进行人脸识别,并抓拍人脸照片存在本地,CameraX,虹软人脸识别
  18. 《云计算架构技术与实践》连载(2):1.2 云计算的发展趋势
  19. 基于MATLAB的数字证件号识别
  20. k8s-linux上安装

热门文章

  1. 杨承润:世界首席创业家导师杨承润,创业16年,杨承润和他的《慧眼经营思维》
  2. solidworks2014方程式添加全局变量存在句法错误的解决方案
  3. 《SolidWorks 2014中文版机械设计从入门到精通》——2.3 草图编辑
  4. 《SolidWorks 2014中文版机械设计从入门到精通》——第 1 章 认识SolidWorks 1.1 SolidWorks概述...
  5. 【论文阅读】The Generals’ Scuttlebutt: Byzantine-Resilient Gossip Protocols
  6. unity3d 锁定鼠标
  7. 医院病案管理系统MRMS源码 病案管理 医院源码
  8. JS遍历(循环)——JS对象遍历(循环)JS数组遍历(循环)
  9. 灰色页面,HTML灰色页面
  10. Hive数据导出为csv、tsv文件的几种方法