达梦cube和rollup函数使用

article/2025/9/12 16:29:32

在使用前需要安装达梦数据库,并创建示例库DMHR

● ROLLUP ●

比如获取公司各城市每个部门员工人数分布和薪资分布情况,使用group by rollup的sql样例参考如下:

从结果集中可以看出group by rollup聚合了城市和部门组合,城市组合,所有组合三种情况。输出结果展示如下:

SELECTC.CITY_NAME                                                 ,DEPT.DEPARTMENT_NAME                                        ,COUNT(                       *) TOAL_PERSONNUM              ,ROUND((RATIO_TO_REPORT(COUNT(*))OVER())*100, 2) PERSON_RATIO,SUM(EMP.SALARY) TOTAL_SALARY                                ,ROUND((RATIO_TO_REPORT(SUM(EMP.SALARY))OVER())*100, 2) SAL_RATIO
FROMDMHR.EMPLOYEE EMP   ,DMHR.DEPARTMENT DEPT,DMHR.LOCATION L     ,DMHR.CITY C
WHEREEMP.DEPARTMENT_ID = DEPT.DEPARTMENT_ID(+)AND DEPT.LOCATION_ID  = L.LOCATION_ID(+)AND L.CITY_ID         = C.CITY_ID(+)
GROUP BYROLLUP (C.CITY_NAME, DEPT.DEPARTMENT_NAME);

结果集如下

从结果集中可以看出group by rollup聚合了城市和部门组合,城市组合,所有组合三种情况。输出结果展示如下:

● CUBE ●

上例中的sql将rollup换成cube,sql样例参考如下:

selectc.city_name                                                 ,dept.department_name                                        ,count(                       *) toal_personnum              ,round((ratio_to_report(count(*))over())*100, 2) person_ratio,sum(emp.salary) total_salary                                ,round((ratio_to_report(sum(emp.salary))over())*100, 2) sal_ratio
fromDMHR.employee emp   ,DMHR.department dept,DMHR.location l     ,DMHR.city c
whereemp.department_id = dept.department_id(+)and dept.location_id  = l.location_id(+)and l.city_id         = c.city_id(+)
group bycube (c.city_name, dept.department_name);

结果集如下:

 从结果集中可以看出group by cube聚合了城市和部门组合,城市组合,部门组合,所有组合四种情况。结果集展示如下:


http://chatgpt.dhexx.cn/article/ImKT4xFB.shtml

相关文章

with rollup函数做合计以及行转列

MySQL-with rollup函数运用 _20160930 在博客里http://www.cnblogs.com/Mr-Cxy/p/5898839.html提到了行转列,(http://blog.csdn.net/ybygjy/article/details/41557425)行转列 列转行都有 如果想在下面这个表下面添加一行 总计 数据行SQL代码怎么实现 并且根据9月金…

mysql有rollup函数_MySQL 聚合函数(二)Group By的修饰符——ROLLUP

一、ROLLUP 修饰符的意义 GROUP BY子句允许添加WITH ROLLUP修饰符,该修饰符可以对分组后各组的某个列的结果值进行汇总,并在结果中输出,即提供更高一级的聚合操作。 因此,ROLLUP使您能够使用单个查询在多个分析级别回答问题。例如,ROLLUP可用于为OLAP(在线分析处理)操作提…

Mysql表数据如何增加汇总统计行(GROUP BY WITH ROLLUP函数用法)

举例一: 下面是一张【商品的售出情况汇总表 tb_goods_sale】 ,表字段解释如下: 目前表中有3条数据,如下图,我们利用GROUP BY WITH ROLLUP 进行统计汇总商品的【售出总数】和【营销额】 sql如下: SELECTa.…

mysql中的cube和rollup_【hive】cube和rollup函数

cube 数据立方体(Data Cube),是多维模型的一个形象的说法.(关于多维模型这里不讲述,在数据仓库设计过程中还挺重要的,有兴趣自行查阅) 立方体其本身只有三维,但多维模型不仅限于三维模型,可以组合更多的维度 为什么叫数据立方体? 一方面是出于更方便地解释和描述,同时也是…

ORACLE rollup函数

rollup函数应用场景: 主要使用在 分组中,将每个分组求汇总值(就是小计),最后再讲所有值(除去小计)求和(就是合计) 当然,使用union 也可以达到同样的效果。先将…

mysql有rollup函数吗_MySQL-with rollup函数运用 _20160930

标签: 如果想在下面这个表下面添加一行 总计 数据行SQL代码怎么实现 并且根据9月金额进行城市降序 总计置于底部呢 MySQL提供了 group by with rollup 函数进行group by 字段的汇总 但是order by 互斥的不能同时用 第一步还是是先计算各城市每个月的金额 SELECT b.城…

mysql有rollup函数吗_MySQL-with rollup函数运用

如果想在下面这个表下面添加一行 总计 数据行SQL代码怎么实现 并且根据9月金额进行城市降序 总计置于底部呢 MySQL提供了 group by with rollup 函数进行group by 字段的汇总 但是order by 互斥的不能同时用 第一步还是是先计算各城市每个月的金额 SELECT b.城市,SUM(IF(b.年月…

mysql有rollup函数,Mysql,Oracle使用rollup函数完成行列统计

时间 2014-02-25 00:05:38 ITeye-博客 昨天突然在 一篇博客中看到了Mysql也有rollup函数,原博文使用了rollup进行行列统计,原博文链接如下: 本博文主要是记录下mysql和oracle使用rollup函数进行行列统计,内容比较简单。 首先是my…

Oracle-rollup()函数[转载]

参考学习了: http://blog.itpub.net/519536/viewspace-610995 http://blog.csdn.net/huang_xw/article/details/6402396 rollup()是group by的一个扩展函数,初步的感觉是,是gropu的升级版,可以多个列进行group by,然后…

数据库小计和总计之 Rollup函数 简单介绍

以下内容仅是站长或网友个人学习笔记、总结和研究收藏。不保证正确性 来源于 易百教程 SQL ROLLUP简介ROLLUP是GROUP BY子句的扩展。 ROLLUP选项允许包含表示小计的额外行,通常称为超级聚合行,以及总计行。 通过使用ROLLUP选项,可以使用单个…

Oracle中rollup函数详解

【基本介绍】 【格式】:group by rollup(字段1,字段2,字段3,...,字段n) 【说明】:rollup主要用于分组汇总,如果rollup中有n个字段,则会分别按【字段1】、【字段1,字段2】,【字段1,字段2,字段3】,...&…

超硬核,SQL注入之时间盲注,原理+步骤+实战思路

「作者主页」:士别三日wyx 「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「专栏简介」:此文章已录入专栏《网络安全快速入门》 时间盲注 一、什么是时间盲注?二、使用场景三、使用步骤第一步…

SQL盲注注入——布尔型

盲注是注入的一种,指的是在不知道数据库返回值的情况下对数据中的内容进行猜测,实施SQL注入。盲注一般分为布尔盲注和基于时间的盲注和报错的盲注。本次主要讲解的是基于布尔的盲注。 Length()函数 返回字符串的长度 Substr&…

【SQL注入漏洞-04】布尔盲注靶场实战

布尔盲注 当我们改变前端页面传输给后台sql参数时,页面没有显示相应内容也没有显示报错信息时,不能使用联合查询注入和报错注入,这时我们可以考虑是否为基于布尔的盲注。 布尔盲注原理: 利用页面返回的布尔类型状态,正…

SQL注入之盲注简单总结

Mysql盲注总结 什么是盲注? 盲注就是在sql注入过程中,sql语句执行的选择后,选择的数据不能回显到前端页面。此时,我们需要利用一些方法进行判断或者尝试,这个过程称之为盲注。SQL盲注与SQL普通注入的区别?…

sql盲注

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 sql注入--盲注 前言一、什么是盲注二、步骤示例1.测试注入点2.测所在数据库长度3. 利用ASCII码猜当前数据库名 4.利用ASCII码查询表名5、利用ASCII码查询字段名sql手注所用到…

Sql盲注与普通注入的区别

Sql盲注与普通注入的区别 在学习sql注入的时候,好多同学都是不弄清楚原理,去浏览器上狂搜一下注入语句,就开始对老师给的靶机注入,虽然能注入成功,但是不清楚原理,对以后的学习和工作没有多大的好处。现在我…

SQL 注入-盲注

目录 一、什么时候用到盲注? 二、盲注的优缺点 三、盲注的流程 四、盲注的分类 五、布尔盲注 5.1、原理以及什么时候使用布尔盲注? 5.2、例如upload-labs靶场中的Less-8 5.3、布尔盲注常用函数及定义 5.4、length()函数的使用方法 5.5、substr…

Sqlmap使用-盲注小实验

目录 sqlmap简介 基本格式 sqlmap详细命令: Options(选项): Target(目标): Request(请求): Enumeration(枚举): O…

SQL注入原理-布尔盲注

小伙伴们大家好,今天为大家带来的使SQL注入原理之布尔盲注。 目录 布尔盲注使用的环境 常用函数与语句 substr()函数 ord()函数 length()函数 实战演示 1、判断是否存在注入点 2、尝试用报错盲注看是否能够成功爆出数据 3、使用布尔盲注来爆出数据信息…