MySQL--分组查询(group by)
分组查询 – 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)相关推荐
- Mysql分组查询group by语句详解
(1) group by的含义:将查询结果按照1个或多个字段进行分组,字段值相同的为一组 (2) group by可用于单个字段分组,也可用于多个字段分组 select * from employee ...
- oracle和mysql查询_Oracle和MySQL分组查询GROUP BY
答案:Oracle对于GROUP BY是严格的,所有要SELECT出来的字段必须在GROUP BY后边出现,否则会报错:"ORA-00979: not a GROUP BY expressi ...
- mysql 查询分组平均数_9、mysql分组查询-----group by 和 having
举例说明:有 Store_Information表 之前我们根据这个表,用函数可以算出sales的总和,平均数等 如果现在我们需要算出每一间店(store_name)的销售总额(sales)呢? 比如 ...
- mysql分组查询和分组过滤
mysql分组查询使用的的关键字是group by,分组过滤使用到的关键字是having.需要先分组查询才能进行分组过滤,个人理解having和where的区别有以下: 1.聚集函数count.sum ...
- mysql 分组查询最新
mysql分组查询最新 看到网上说到的方法和我写的都一样,也不知道有没有更好的方法,等到解答. SELECT id,group_id from (SELECT id,group_id from tab ...
- Mysql分组查询每组最新的一条数据(三种实现方法)
MySQL分组查询每组最新的一条数据 前言 注意事项 准备SQL 错误查询 错误原因 方法一 方法二(适用于自增ID和创建时间排序一致) 方法三(适用于自增ID和创建时间排序一致) 总结 MAX()函 ...
- MySQL分组查询,获取分组后数据
MySQL分组查询,获取分组后数据 MySQL分组查询,将其它列的数据,合并到一行展示,可以设置去重,设置去重,设置排序,截取指定条数 创建表结构 CREATE TABLE `author_info` ...
- MySQL分组查询跟聚合函数
MySQL分组查询跟聚合函数 一.分组查询的语句 GROUP BY { <列名> | <表达式> | <位置> } [ASC | DESC] 这个语句中间{ < ...
- mysql 子查询 group by_mysql 子查询 group by的使用
1 group by表示排序,后面查询出来的是每一组的第一条数据,where后面表示提出条件之类的,如果对排序需要有条件筛选,应该在属性名后接 having +条件 .而不能使用where 2 聚合函 ...
- mysql分组查询只获取第一条
mysql分组查询只获取第一条 接到一个需求: 需要获取协议表里所有供应商对应最新的采购员. 由于协议表里供应商的协议会有多个,可能采购员也不是同一个,所以需要做到聚合.筛选才能达到效果. -- 外层 ...
最新文章
- Java 获取当前时间最近12个月(字符串)
- C语言再学习 -- 内存管理
- 博弈论66个经典例子_「百大管理学定律」博弈论Game Theory
- 计组-I/O系统的基本概念
- FTP下载文件中文名乱码FTP访问
- java程序n体问题_2n皇后问题 (Java代码)详解
- ubuntu 下可以尝试还不错的屏幕截图工具: flameshot
- python游戏源码回合制游戏_python game源码下载
- linux 文件可执行_深入理解linux内核——可执行文件执行过程(2)
- iOS Xcode7.2 is Not on Any Development Teams
- iframe中的右键 禁止_网站排名优化中必须要注意的事项
- R语言ggplot2可视化哑铃图、强调从一个点到另一个点的变化、数量的变化、客户满意度的变化等(Dumbbell Plot)、为可视化图像添加标题、题注信息
- android文件恢复功能,安卓手机误删文件恢复?快速恢复办法
- 如何写一篇数据分析报告3 - 分析背景是什么
- Java之ut,mock与jacoco
- 基于51单片机的电子万年历设计
- 很漂亮实用的jQuery实例123个
- KaTeX 数学符号列表
- 在10亿个数中找出前1000个最大的
- 物联网-物联网智能数据处理技术
热门文章
- 【Python绘图】Python画动态条形图(横向直方图)
- 奔图P3022D黑白激光打印机 评测
- A005:python 时间处理
- 基于《高级计算机图形学原理与实践》(西安科技大学)的学习笔记(一、二)
- java中上转型概念_Java中上转型和重写有什么区别?
- 微信公众号的封面图怎么拿到手
- #你好Unity3D#避免玩家作弊(来自我的长微博)
- 基于Linux用C语言实现TCP半双工通信和UDP半双工通信
- 前端——使用JavaScript(jQuery)通过身份证号获取籍贯、生日、年龄、性别
- 遇到100万行的 Excel,还没打开,电脑和我都崩溃了,该怎么办?