分组查询 – group by

(1)单列分组查询

   语法: select f1,f2,f3,f4...from table_namegroup by f;说明:f表示要根据f列进行分组

强调:在进行分组查询的时候,分组所依据的f列上的值
要有一定的重复性,否则分组没有什么意义。

例子:查询员工表,按照部门对所有员工进行分组查询

select * from t_employeegroup by deptno;

说明:group by deptno是按照部门进行分组,分组以后查询的结果只是显示了该组中的一条数据。
这种简单的分组查询操作,没有任何实际的意义,建议与统计函数一起使用。

 语法: select function(f1),function(f2),...from table_namegroup by f;

例子:查询员工表,按照部门进行分组查询,同时显示每组中的员工人数,每组中员工的工资总和,以及平均工资,每组中最高工资和最低工资.

select deptno,count(ename),sum(sal),avg(sal),max(sal),min(sal),enamefrom t_employeegroup by deptno;

select deptno,count(ename),group_concat(ename)from t_employeegroup by deptno;

说明:group_concat()函数能够将分组后的内容连接显示

(2)多列分组查询

分组查询操作 – 根据多个字段

语法:select function(f1),function(f2)...from table_namegroup by field1,field2...
说明:先根据field1分组,然后针对分组后的内容在根据field2分组...

例子:查询员工表,先按照部门对所有员工进行分组,然后在按照入职日期对每组员工再分组。查询显示每组的员工姓名和人数。

select deptno,Hiredate,count(ename),group_concat(ename) from t_employeegroup by deptno,Hiredate;

(3)分组后的条件数据查询 – having关键字

语法:select function(f1),function(f2)...from table_namegroup by f...having 条件;说明:条件数据查询有where和having。having关键字只用在分组数据查询中,而且必须在group by之后使用。

例子:查询员工表,按照部门进行分组,显示平均工资高于2000的员工姓名。

select deptno,group_concat(ename),avg(sal)from t_employeegroup by deptnohaving avg(sal)>2000;

MySQL--分组查询(group by)相关推荐

  1. Mysql分组查询group by语句详解

    (1) group by的含义:将查询结果按照1个或多个字段进行分组,字段值相同的为一组 (2) group by可用于单个字段分组,也可用于多个字段分组 select * from employee ...

  2. oracle和mysql查询_Oracle和MySQL分组查询GROUP BY

    答案:Oracle对于GROUP BY是严格的,所有要SELECT出来的字段必须在GROUP BY后边出现,否则会报错:"ORA-00979: not a GROUP BY expressi ...

  3. mysql 查询分组平均数_9、mysql分组查询-----group by 和 having

    举例说明:有 Store_Information表 之前我们根据这个表,用函数可以算出sales的总和,平均数等 如果现在我们需要算出每一间店(store_name)的销售总额(sales)呢? 比如 ...

  4. mysql分组查询和分组过滤

    mysql分组查询使用的的关键字是group by,分组过滤使用到的关键字是having.需要先分组查询才能进行分组过滤,个人理解having和where的区别有以下: 1.聚集函数count.sum ...

  5. mysql 分组查询最新

    mysql分组查询最新 看到网上说到的方法和我写的都一样,也不知道有没有更好的方法,等到解答. SELECT id,group_id from (SELECT id,group_id from tab ...

  6. Mysql分组查询每组最新的一条数据(三种实现方法)

    MySQL分组查询每组最新的一条数据 前言 注意事项 准备SQL 错误查询 错误原因 方法一 方法二(适用于自增ID和创建时间排序一致) 方法三(适用于自增ID和创建时间排序一致) 总结 MAX()函 ...

  7. MySQL分组查询,获取分组后数据

    MySQL分组查询,获取分组后数据 MySQL分组查询,将其它列的数据,合并到一行展示,可以设置去重,设置去重,设置排序,截取指定条数 创建表结构 CREATE TABLE `author_info` ...

  8. MySQL分组查询跟聚合函数

    MySQL分组查询跟聚合函数 一.分组查询的语句 GROUP BY { <列名> | <表达式> | <位置> } [ASC | DESC] 这个语句中间{ < ...

  9. mysql 子查询 group by_mysql 子查询 group by的使用

    1 group by表示排序,后面查询出来的是每一组的第一条数据,where后面表示提出条件之类的,如果对排序需要有条件筛选,应该在属性名后接 having +条件 .而不能使用where 2 聚合函 ...

  10. mysql分组查询只获取第一条

    mysql分组查询只获取第一条 接到一个需求: 需要获取协议表里所有供应商对应最新的采购员. 由于协议表里供应商的协议会有多个,可能采购员也不是同一个,所以需要做到聚合.筛选才能达到效果. -- 外层 ...

最新文章

  1. Java 获取当前时间最近12个月(字符串)
  2. C语言再学习 -- 内存管理
  3. 博弈论66个经典例子_「百大管理学定律」博弈论Game Theory
  4. 计组-I/O系统的基本概念
  5. FTP下载文件中文名乱码FTP访问
  6. java程序n体问题_2n皇后问题 (Java代码)详解
  7. ubuntu 下可以尝试还不错的屏幕截图工具: flameshot
  8. python游戏源码回合制游戏_python game源码下载
  9. linux 文件可执行_深入理解linux内核——可执行文件执行过程(2)
  10. iOS Xcode7.2 is Not on Any Development Teams
  11. iframe中的右键 禁止_网站排名优化中必须要注意的事项
  12. R语言ggplot2可视化哑铃图、强调从一个点到另一个点的变化、数量的变化、客户满意度的变化等(Dumbbell Plot)、为可视化图像添加标题、题注信息
  13. android文件恢复功能,安卓手机误删文件恢复?快速恢复办法
  14. 如何写一篇数据分析报告3 - 分析背景是什么
  15. Java之ut,mock与jacoco
  16. 基于51单片机的电子万年历设计
  17. 很漂亮实用的jQuery实例123个
  18. KaTeX 数学符号列表
  19. 在10亿个数中找出前1000个最大的
  20. 物联网-物联网智能数据处理技术

热门文章

  1. 【Python绘图】Python画动态条形图(横向直方图)
  2. 奔图P3022D黑白激光打印机 评测
  3. A005:python 时间处理
  4. 基于《高级计算机图形学原理与实践》(西安科技大学)的学习笔记(一、二)
  5. java中上转型概念_Java中上转型和重写有什么区别?
  6. 微信公众号的封面图怎么拿到手
  7. #你好Unity3D#避免玩家作弊(来自我的长微博)
  8. 基于Linux用C语言实现TCP半双工通信和UDP半双工通信
  9. 前端——使用JavaScript(jQuery)通过身份证号获取籍贯、生日、年龄、性别
  10. 遇到100万行的 Excel,还没打开,电脑和我都崩溃了,该怎么办?