当前位置:首页 > 数据库 > mysql 中 group by with rollup的用法

mysql 中 group by with rollup的用法

2022年09月16日 21:28:28数据库10

用法:
1.group by 列名(或是列数):按照指定的列属性进行分组。
2.group by 列名 with rollup:不仅可以按照指定的列属性进行分组,还可以完成分组后的聚合操作,以及对所用列的操作。
举一个实例:下面是一个工资表,有三个列属性:部门号,姓名,工资

select * from salary

mysql 中 group by with rollup的用法 _ JavaClub全栈架构师技术笔记

如果我们想要同一部门的人的排列在一起,可以用group by 来实现:

select * from salary group by depno,name

mysql 中 group by with rollup的用法 _ JavaClub全栈架构师技术笔记
那如果我们想要求的每一个部门的总工资的话,可以这么写:

select depno,sum(amount) as wage from salary group by depno

既将员工按部门号分组,又显示出各个部门的总工资

select depno,name,sum(amount)  from salary group by depno,name with rollup

mysql 中 group by with rollup的用法 _ JavaClub全栈架构师技术笔记
我们看到了多了四行,分别求出了各部门分别的总工资和所有部门的总工资。
其中要注意的是,在group by 列名 with rollup 中,倘若按列名分组后,列的属性值是不相同的,会生成一条分组条件的列为null的一条新的数据。而如果查询结果是唯一的,一会生成一条分组条件所在列为null的数据。如下:
mysql 中 group by with rollup的用法 _ JavaClub全栈架构师技术笔记
这在一些代码审计中是可能存在绕过的。

作者:iringzh
来源链接:https://blog.csdn.net/iczfy585/article/details/100432869

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。


本文链接:https://www.javaclub.cn/database/42299.html

标签: group by
分享给朋友:

“mysql 中 group by with rollup的用法” 的相关文章

mysql查询语句 groupby后取组内时间最近的一条数据时间

mysql查询语句 groupby后取组内时间最近的一条数据时间

在mysql中使用group by进行分组后取时间最近的一条数据,我们可以直接使用MAX()函数来实现 SELECT T2.nick_name as nickName, count(T1.shared_user_id) AS...

MySQL中 (GROUP BY 用法)和(ORDER BY用法)

MySQL中 (GROUP BY 用法)和(ORDER BY用法)

一、GROUP BY(分组) 例子: SELECT sum(id) as aa_id, max(id) as m_id, message FROM device_shadow_log GROUP BY message ORDER BY aa_id DESC 1...

where,group by,having,order by执行顺序和编写顺序

当一个查询语句同时出现了where,group by,having,order by的时候,执行顺序和编写顺序 使用count(列名)当某列出现null值的时候,count(*)仍然会计算,但是count(列名)不会。 二、数据分组(group b...

MySQL的分组查询group by

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

mysql分组查询教程

在 MySQL 中,GROUP BY 关键字可以根据一个或多个字段对查询结果进行分组。 使用 GROUP BY 关键字的语法格式如下: GROUP BY ,, ... ... 其中,“字段名”表示需要分组的字段名称,多个字段时用逗号隔开...

group by分组筛选

我们在MySQL做查询时,经常需要用到 group by 分组来筛选查询 相信做后端的朋友应该遇到过,有时候需要对分组的结果再进行过滤,这时候where用不了,那么该如何解决呢? 解决方法: 用 having 处理,即having后面接筛选的条件,写法的wher...

mysql group by 用法解析(详细)

group by 用法解析 group by语法可以根据给定数据列的每个成员对查询结果进行分组统计,最终得到一个分组汇总表。 SELECT子句中的列名必须为分组列或列函数。列函数对于GROUP BY子句定义的每个组各返回一个结果。 某个员工信息表结构和数据如下:   i...

oracle group by执行慢,一次对group by时间导致的慢查询的优化

oracle group by执行慢,一次对group by时间导致的慢查询的优化

前言: 最近在测试环境中点击一个图表展示页面时,半天才得到后台响应的数据进行页面渲染展示,后台的响应很慢,这样极大的降低了用户的体验; 发现这个问题后马上进行了排查 ,通过排查发现是由一个查询很慢的 group by 语句导致的; 本文...

Mysql Group by函数用法详解

Mysql Group by函数用法详解

应用场景: 现有表student如下: 需求描述: 需要查询1班的人数: 使用语句: SELECT count(*) from student where class_name ='1班'; 结果显示:...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。