MySQL中的WITH ROLLUP疑问 5C

版本:mysql V 8.0.12 for Win64 on x86_64 (MySQL Community Server - GL)

表:std_2

sno sname sage
1001 zhangsan1 19
1002 zhangsan2 21
1003 zhangsan3 21
1004 zhangsan4 21
1005 zhangsan5 18
1006 zhangsan6 23
1007 zhangsan7 22
1008 zhangsan8 22
1009 zhangsan9 23
1010 zhangsan10 21

对sage进行分类组合,10 ~ 19岁一个区间(2),20 ~ 29岁一个区间(8),并求总数(10):

 SELECT FLOOR(sage/10)*10 AS age_area, COUNT(FLOOR(sage/10)) AS area_count FROM std_2 GROUP BY FLOOR(sage/10) WITH ROLLUP;

结果为下图,为何最后一行第一列不是“NULL”呢?
图片说明

另发现,如果在“FLOOR(sage/10)*10”处去掉“*10”,结果对应位置倒是“NULL”,如下图,
图片说明

还请高手赐教为何有这样的区别,多谢!

0

4个回答

因为你的分组值跟你的展示值是不一样的,不信你加一个FLOOR(T001/10)在前面

1
0

floor函数的用法是干嘛 去掉小数部分 保留整数部分 比如你的结果小于1 0.111 去掉 111 不久等于 null

0
qq_37181771
77_XQ floor函数的用法是干嘛 去掉小数部分 保留整数部分 比如你的结果小于1 0.111 去掉 111 不久等于 null
大约一年之前 回复
weixin_36394146
無憂炎武大帝 嗯,是,我知道 FLOOR 是取整,那OK,你看哈,在下图中 FLOOR(XXXX) 我没有乘以 10,所以按你的说法是NULL,那为何上图中 FLOOR(XXXX) * 10 之后就是30了呢?NULL * 10 = 30?
大约一年之前 回复
0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
mysql聚合函数rollup和cube
一、with rollup: with rollup 通常和group by 语句一起使用,是根据维度在分组的结果集中进行聚合操作。——对group by的分组进行汇总。   假设用户需要对N个纬度进行聚合查询操作,普通的groupby语句需要N个查询和N次group by操作。而rollup的有点是一次可以去的N次groupby的结果,这样可以提高查询效率,同时大大减少网络的传输流
MySQL分类汇总(group by...with rollup)统计时,如何显示“总计”字段?
groupby总计字段
Mysql的with rollup(5.1以上版本)
使用 GROUP BY 的 WITH ROLLUP 字句可以检索出更多的分组聚合信息,它不仅仅能像一般的 GROUP BY 语句那样检索出各组的聚合信息,还能检索出本组类的整体聚合信息。RollUp是上卷功能,类似于数据挖掘中的上卷操作。ROLLUp的功能和Order by功能是互斥的。 GROUPBY子句允许使用WITH ROLLUP,从而使额外的行被添加到输出的结果。这些行代表上级(或超总量
MySQL关键字with rollup的用法
关键字with rollup用于group by后,它可以将group by分组后的结果进行分类汇总。 下面用具体示例来说明with rollup的用法: # 创建示例要用到的学生成绩表grade: create table grade( sid char(2) not null default '00', cid char(2) not null default '00', sname ...
数据库------》Mysql数据库---》group by子句中使用with rollup功能
with rollup 是统计记录数量的意思,(中文意思是:汇总) 代码: 列出friuts表的结构及数据 在group by后使用with rollup MYSQL代码:select f_id ,count(*) as Total from friuts group by f_name with rollup 效果图 w
使用ROLLUP函数生成报表的小计、合计
使用ROLLUP函数生成报表的小计、合计 这个函数很不错 使用的范围其实蛮广的
使用rollup函数统计报表合计
在做报表时,经常会遇到在最后一行将前面所列出的值计算合计,这个时候你会怎么做呢?最初我的想法是再将原来些的sql稍作一些修改,然后求和。这样最起码算出来的数据会比较准确。但这样对数据库压力也比较大,另外以后如果需求有所变动,修改起来也比较麻烦,维护也比较麻烦。l另外一种做法跟这个比较来说,差不多类似。只不过是将需要查询的表都写到一个临时的表中,然后通过union将两个数据合并起来。但这个也会有...
Sql使用WITH ROLLUP 进行分类汇总及小计功能
效果如下:测试代码如下:CREATE TABLE #test    (      Name VARCHAR(10) ,      [procedure] CHAR(1) ,      model VARCHAR(5) ,      quantity INT    );INSERT  INTO #test        SELECT  'A' ,                '1' ,      
rollup分析函数
表的初始数据: 使用rollup进行汇总之后的数据: select t.first_name,sum(t.salary)  from t_test1 t group by rollup(t.first_name) 可以改写为: select nvl(t.first_name,'total'),sum(t.salary)  from t_test1 t group
统计:分组统计后只加合计,不加小计 group by rollup
1数据:员工信息表员工姓名  部门  职位   甲            A        01乙            A        01丙            A        02丁            B        01戊            B       03己            C       01庚            C       01辛          ...
group by rollup函数的用法
[code="java"] 有个表a有字段c1,c2有记录 2015-03-01 2 2015-03-01 3 2015-03-02 5 想要得到得到如下结果 2015-03-01 4 2015-03-02 5 合计 9 可以通过 select decode(grouping(c1),1,'合计',c1),sum(c2) from ...
关于rollup的简单用法和层次查询
select t.deptno,t.job,sum(sal) from emp t group by rollup(t.deptno,t.job);等价于 select t.deptno,t.job,sum(sal) from emp t group by t.deptno,t.job + select t.deptno,sum(sal) from emp t group by t.deptno +
oracle group by中cube和rollup字句的使用方法及区别
oracle group by中rollup和cube的区别: Oracle的GROUP BY语句除了最基本的语法外,还支持ROLLUP和CUBE语句。如果是ROLLUP(A, B, C)的话, 首先会对(A、B、C)进行GROUP BY,然后对(A、B)进行GROUP BY,然后是(A)进行GROUP BY,最后对全表进行GROUP BY操作。 如果是GROUP BY CUBE(A, B,...
group by后使用rollup子句总结
group by后使用rollup子句总结,oracle开发人员值得一看
利用Mysql的with rollup的到汇总信息
1、介绍    1.1 WITH ROLLUP 是用来在分组统计数据的基础上再进行统计汇总,即用来得到group by的汇总信息;    rollup 可以实现多维度的聚合(相当于oracle的高级分组函数rollup(a,b,c,...))    对分组的列,以(a,b,c)为例,会实现(a,b,c),(a,b,null),(a,null,null),(null,null,null)的聚合方式...
SQLSERVER 使用 ROLLUP 汇总数据,实现分组统计,总计(合计),小计
在工作中遇到了这样的一个问题,就是需要将查询出来的数据进行分类汇总。这里用到了with rollup。下面是效果图。 为了得到这样的效果,我们该如何做呢,我们来做这个小demo。 数据库字样 需求分析 本实例为demo,没有任何意义。仅仅是为了完成功能。 1、依次按照住址,部门,性别三个条件进行汇总,汇总出他们的月薪总金额,和纳税总金额。 代码实现1——依次按照住址,部门,性别三个...
高级分组函数(rollup、cube、grouping sets)
1、使用场景 ROLLUP,CUBE,GROUPING,SETS 函数可以理解为Group By 分组函数封装后的精简用法,相当于多个union all 的组合显示效果,但是要比 多个 union all 的效率要高。 https://www.cnblogs.com/yxysuanfa/p/6830388.html 1.1 测试数据 CREATE TABLE emp ( ...
CTF实验吧-因缺思汀的绕过【group by,with rollup,limit offset的利用】
原题内容: 访问解题链接去访问题目,可以进行答题。根据web题一般解题思路去解答此题。看源码,请求,响应等。提交与题目要求一致的内容即可返回flag。然后提交正确的flag即可得分。web题主要考察SQL注入,XSS等相关知识。涉及方向较多。此题主要涉及源码审计,MySQL相关的知识。 flag格式 CTF{} 解题链接:http://ctf5.shiyanbar.com...
rollup和cube函数区别
使用rollup(field)和cube(field) 对单个field字段时区别不大,只是前者在最尾部进行汇总,后者在最顶部进行汇总,但存在多个字段时就呈现下面的不同之处。 1.未进行汇总 Select t.deptno,t.en_job,avg(t.age),Max(t.age),Min(t.age),avg(t.salary),Max(t.salary),Min(t.salary),
GROUP BY...WITH ROLL UP 分组统计后的再合计
GROUP BY...WITH ROLL UP 是group by 的高配版,在group by 分组之后,再合计总数。 ex:求8月1号到9号每日投资人数   SELECT COUNT(DISTINCT investor_uid)AA, FROM_UNIXTIME(add_time, '%Y-%m-%d')BB FROM lzh_borrow_investor WHERE FRO
SQL Server中Rollup关键字使用技巧
首先创建测试表、添加数据。 create table #t(a int,b int,c int,d int,e int) insert into #t values(1,2,3,4,5) insert into #t values(1,2,3,4,6) insert into #t values(1,2,3,4,7) insert into #t values(1,2
ORACLE 分组函数之ROLLUP 有null值
详细参考:https://www.yuhuashi.info/post/95.html
rollup+es6最佳实践
简单说下rollup就是只将调用过的模块打包,做到尽量精简的打包。使用webpack 1.X 版本是无法利用该特性来避免引入冗余模块代码的webpack2 已经出来好几款 beta 版本了,同样也加上了对 Tree-shaking 的支持1.src中的文件jquery.js// 出口 import init from './init'; init(jQuery);export default jQu
MySQL性能调优-使用ROLLUP代替UNION ALL
需求:统计各个活动的用券总金额和所有活动的用券总金额 原SQL语句如下(表明比较敏感,不便展示): select active_code,SUM(rp_amount) totalReward from xxx_xxx_xxx_xxx group by active_code union all select null, SUM(rp_amount) totalReward from xxx_x...
Oracle分组统计,rollup函数使用示例
要查询的表结构以及测试数据如下:rollup_test_tableyyyyMMcum_user(累计用户)new_user(新用户)2018/1862018/286分组统计并计算新用户占比的查询sql:select     nvl(yyyyMM,'总计') yyyyMM,    sum(cum_user) cumUser,    sum(new_user) newUser,    sum(new_...
使用 Rollup 开发 React 组件库
使用 Rollup 开发 React 组件库 说明 Rollup 是一个 JavaScript 模块打包器,他可以静态分析代码中的 import 并排除任何未实际使用的代码,可以极大的缩小项目(Tree-shaking), 与 Webpack 相比,Rollup 更多的被用于类库的开发 rollup.js 中文文档 中文文档不够全面,有些内容还是要到英文官网查找 rollup.js 英文官网...
rollup又一打包利器,不需要的代码统统走开
前端打包不仅仅只有webpack, rollup又一利器,不需要的代码统统走开 rollup.js是一个模块打包工具,可以帮助你从一个入口文件开始,将所有使用到的模块文件都打包到一个最终的发布文件中(极其适合构建一个工具库)   tree-shaking  这个特性可以帮助你将无用代码(即没有使用到的代码)从最终的生成文件中删去   vue 源码目前采用rollup进行打包   打出...
DB2分组函数ROLLUP和CUBE的使用
DB2的GROUP BY语句除了最基本的语法之外,还支持ROLLUP和CUBE语句。ROLLUP和CUBE在数据统计和报表生成过程中带来极大的便利,而且效率比起来GROUP+UNION组合方式效率高很多。
利用rollup构建和发布NPM包
为什么用rollup构建而不用webpack或者parcel等其他构建工具 相比之下我对webpack的掌握要比rollup要好,之所以尝试用rollup构建,主要原因就是想尝试一下rollup。在前端构建工具层出不穷的年代,有必要掌握一到两种构建工具来适应前端的发展。 vue源码采用rollup构建。因为想了解一下vue的源码,所以可以趁着构建npm包的机会尝试一下rollup,熟悉下语法。 ...
postgre——case、union、小计总计(GROUP BY ROLLUP)写法
//将几张不同表结构的数据全部合并在一起,使用了case、union,同时实现小计总计select case when t_all.temp_comm is null then '总计' else t_all.temp_comm end as temp_comm, commodity_name,guige,t_bi_commbaseinfo.comm_type_id,comm_type_name,
rollup学习整理-2-插件详解
Rollup 学习整理 2 插件详解 plugins 插件 1. rollup-plugin-node-resolve 帮助 Rollup 查找外部模块,然后安装,相关配置 import resolve from 'rollup-plugin-node-resolve'; export default { ... plu...
vue源码阅读记录---rollup配置文件细读
在vue源码的script/script.js 定义了rollup打包的配置文件 : 1 这一部分引入了一些依赖 const path = require('path') // path 模块提供了一些用于处理文件路径的小工具 const buble = require('rollup-plugin-buble') //rollup.js打包的过程中进行代码编译,将ES6+代码编译成ES2...
rollup打包js代码
个人学习过程中的一个记录: 1. 创建一个文件夹 2. 在这个文件夹下,使用命令行 输入命令,初始化一个项目  npm init -y 然后根目录下会产生一个package.js文件,这个文件中包含了项目相关信息以及第三方依赖等 3. 在根目录下新建一个文件rollup.config.js 这个文件用来配置rollup,配置打包的规则 4. 在package.js文件中script...
简便的Windows操作系统更新,您准备好了吗?
还在为新部署的Windows 7 操作系统花费好几个小时苦苦地完成更新吗?还在为每个月若干操作系统的安全更新、关键更新、更新程序集纠结取舍吗?本月11日(太平洋时间),Windows产品组为Windows7、Windows 8.1 系列产品将带来更为简便的操作系统更新模式。这一模式接近全新的Windows 10更新模式,提供安全稳定的操作系统。之前产品组在5月份和8月份的博客上逐步披露了具体的细节
MySQL操作命令大全使用(一)
数据库操作命令 1,连接数据库 mysql -u root -p Enter password: **** 或者mysql -uroot –proot -u 用户名 –p 密码 可视化连接工具 navicat 2,退出MySQL exit; 或 quit; 3,创建数据库 create database box; #以分号结束 英文状态下 Query OK, 1 row affec...
MYSQL集群+HA高可用实战【MySQL性能调优】.
MySQL Cluster 是用于解决高可用和高可靠性的解决方案。 MySQL Cluster 具有故障恢复、节点修复、数据同步、非单点故障等优点。 MySQL Cluster是为提供99.999%以上的高可用性而设计的,采用分布式节点设计技术,不会因为单点故障而使整个Cluster瘫痪。 MySQL Cluster由3类节点组成:管理节点、数据节点、SQL节点。
Webpack 和 Rollup :一样但又不同
4月初,Facebook 将一个巨大的 pull 请求合并到了 React 主分支(master) 中,将其现有的构建流程替换为基于Rollup,这一举动促使一些人发很疑惑 “你为什么选择 Rollup 而抛弃 webpack ”? 这是一个完全合理的问题。Webpack是现代 JavaScript 社区最成功的故事之一,每月有数百万的下载量,为成千上万的网站和应用提供支持。它有一...
mysql中GROUP BY 分组查询
mysql中GROUP BY 分组查询
rollup函数测试使用
自动汇总函数rollup使用:   求单个部门工资总和:     加个union all 就能得到一张报表形式的表数据:   数据类型不一样,所以union all 不能使用     使用to_char转下,得出了报表示的结果。   使用:rollup函数 这里使用to_char转了以后,但数据库不认为为空,所以Total没有显示进去,这里主要就是介绍...
rollup和cube区别(基于spark sql)以及用dataFrame代码实现
1. rollup前后对比 前: |pcode|event_date|duration|                     +-----+----------+--------+ |    1|2018-09-02|       3|                      |    1|2018-09-03|       2| |    1|2018-09-04|       1| ...