js网站大全郑州网站制作推广

news/2025/9/22 18:05:30/文章来源:
js网站大全,郑州网站制作推广,做网站实训报告总结,招远网站建设多少钱除了基本的分组功能之外#xff0c;GROUP BY 子句还提供了几个高级选项#xff0c;可以用来实现更复杂的报表功能。 本文比较五种主流数据库实现的高级分组功能#xff0c;包括 MySQL、Oracle、SQL Server、PostgreSQL 以及 SQLite。 功能MySQLOracleSQL ServerPostgreSQL…除了基本的分组功能之外GROUP BY 子句还提供了几个高级选项可以用来实现更复杂的报表功能。 本文比较五种主流数据库实现的高级分组功能包括 MySQL、Oracle、SQL Server、PostgreSQL 以及 SQLite。 功能MySQLOracleSQL ServerPostgreSQLSQLiteROLLUP✔️✔️✔️✔️❌CUBE❌✔️✔️✔️❌GROUPING SETS❌✔️✔️✔️❌GROUPING 函数✔️✔️✔️✔️❌ 小计、合计与总计 GROUP BY 子句的 ROLLUP 选项可以生成按照不同层级进行汇总的结果从而实现报表中的小计、合计和总计。例如 -- Oracle、Microsoft SQL Server 以及 PostgreSQL SELECT dept_id AS 部门编号, sex AS 性别, COUNT(*) AS 员工数量 FROM employee GROUP BY ROLLUP (dept_id, sex);其中ROLLUP 表示首先按照不同部门和性别的组合统计员工数量然后按照不同的部门统计员工数量最后统计全体员工的数量注意括号不能省略。Oracle、Microsoft SQL Server 以及 PostgreSQL 实现了以上语法查询返回的结果如下 部门编号|性别|员工数量 ------|---|-------1|男 | 31| | 32|男 | 32| | 33|女 | 23| | 24|男 | 84|女 | 14| | 95|男 | 85| | 8| | 25查询结果中性别为空的记录表示按照不同部门统计的员工数量部门编号和性别都为空的记录表示全体员工的数量。 MySQL 提供了 ROLLUP 选项但是语法略有不同。例如 -- MySQL 和 Microsoft SQL Server SELECT dept_id AS 部门编号, sex AS 性别, COUNT(*) AS 员工数量 FROM employee GROUP BY dept_id, sex WITH ROLLUP;其中WITH ROLLUP 位于分组字段之后而且无须使用括号。查询返回的结果和上面的示例相同。另外Microsoft SQL Server 也支持这种语法。 提示GROUP BY 子句的 ROLLUP 选项表示先按照所有分组字段进行分组汇总然后从右至左依次去掉一个分组字段再进行分组汇总被去掉的字段显示为空。最后将所有的数据进行一次汇总所有分组字段都显示为空。 SQLite 目前不支持 ROLLUP 选项。 交叉统计报表 GROUP BY 子句的 CUBE 选项可以对分组字段进行各种组合产生类似于 Excel 数据透视表的多维度交叉报表。例如 -- Oracle、Microsoft SQL Server 以及 PostgreSQL SELECT dept_id AS 部门编号, sex AS 性别, COUNT(*) AS 员工数量 FROM employee GROUP BY CUBE (dept_id, sex);其中CUBE 表示首先按照不同部门和性别的组合统计员工数量然后按照不同的部门统计员工数量之后按照不同的性别统计员工数量最后统计全体员工的数量。Oracle、Microsoft SQL Server 以及 PostgreSQL 实现了以上语法查询返回的结果如下 部门编号|性别|员工数量 ------|---|-------1|男 | 32|男 | 34|男 | 85|男 | 8|男 | 223|女 | 24|女 | 1|女 | 3| | 251| | 32| | 33| | 24| | 95| | 8查询结果中性别为空的记录表示按照不同部门统计的员工数量部门编号为空的记录表示按照不同性别统计的员工数量部门编号和性别都为空的记录表示全体员工的数量。 提示GROUP BY 子句的 CUBE 选项产生的分组情况随着分组字段的增加呈指数级 2n 增长ROLLUP选项产生的分组情况随着分组字段的增加呈线性n1 增长。 MySQL 和 SQLite 目前不支持 CUBE 选项。 自定义维度统计 ROLLUP 和 CUBE 选项都是按照固定的方式进行分组GROUP BY 子句还支持一种更为灵活的分组选项GROUPING SETS。该选项可以用来指定自定义的分组集也就是自定义分组字段的组合方式。例如 GROUP BY dept_id, sex相当于指定了 1 个分组集 GROUP BY GROUPING SETS ((dept_id, sex))其中(dept_id, sex) 表示按照不同部门和性别的组合进行分组括号内的所有字段作为一个分组集最外面的括号则包含了所有的分组集。 同样以下 ROLLUP 选项 GROUP BY ROLLUP(dept_id, sex)相当于指定了 3 个分组集 GROUP BY GROUPING SETS ((dept_id, sex), (dept_id), ())其中(dept_id, sex) 表示按照不同部门和性别的组合进行分组(dept_id) 表示按照不同的部门进行分组() 表示对全体员工进行汇总。 同样以下 CUBE 选项 GROUP BY CUBE(dept_id, sex)相当于指定了 4 个分组集 GROUP BY GROUPING SETS ((dept_id, sex), (dept_id), (sex), ())其中(dept_id, sex) 表示按照不同部门和性别的组合进行分组(dept_id) 表示按照不同的部门进行分组(sex) 表示按照不同的性别进行分组() 表示对全体员工进行汇总。 因此ROLLUP 和 CUBE 选项都属于 GROUPING SETS 选项的特例。GROUPING SETS 选项的优势在于可以指定任意的分组方式。例如 -- Oracle、Microsoft SQL Server 以及 PostgreSQL SELECT dept_id AS 部门编号, sex AS 性别, COUNT(*) AS 员工数量 FROM employee GROUP BY GROUPING SETS ((dept_id), (sex), ());以上查询分别按照不同的部门、不同的性别统计员工的数量同时统计了全体员工的数量。查询返回的结果如下 部门编号|性别|员工数量 -------|---|-------| | 254| | 92| | 33| | 21| | 35| | 8|男 | 22|女 | 3当分组统计的维度越来越多时这种方式可以方便我们实现各种不同的业务统计需求。 MySQL 和 SQLite 目前不支持 GROUPING SETS 选项。 GROUPING 函数 我们在使用 GROUP BY 子句的扩展选项时查询会产生一些空值数据。这些空值意味着对应的记录是针对这个字段所有数据的汇总我们可以利用 GROUPING 函数识别这些空值数据。例如 -- Oracle、Microsoft SQL Server 以及 PostgreSQL SELECT sex AS 性别, COUNT(*) AS 员工数量,GROUPING(sex) AS 所有性别 FROM employee GROUP BY ROLLUP (dept_id, sex);查询返回的结果如下 性别|员工数量|所有性别 ---|-------|------- 男 | 22| 0 女 | 3| 0| 25| 1其中GROUPING(sex) 函数返回 0表示当前记录不是所有性别的汇总数据返回 1表示当前记录是所有性别的汇总数据。因此结果中的最后一条记录表示全体员工的数量。 我们可以进一步利用 CASE 表达式对查询结果进行转换显示 -- Oracle、Microsoft SQL Server 以及 PostgreSQL SELECT CASE GROUPING(sex) WHEN 1 THEN 所有性别 ELSE sex END AS 性别,COUNT(*) AS 员工数量 FROM employee GROUP BY ROLLUP (sex);查询返回的结果如下 性别 |员工数量 -------|------ 女 | 3 男 | 22 所有性别| 25我们将最后一行中性别为空的数据显示为“所有性别”。 MySQL 同样支持 GROUPING 函数例如 -- MySQL 和 Microsoft SQL Server SELECT CASE GROUPING(sex) WHEN 1 THEN 所有性别 ELSE sex END AS 性别,COUNT(*) AS 员工数量 FROM employee GROUP BY sex WITH ROLLUP;查询返回的结果和上面的示例相同。 SQLite 中的 GROUP BY 子句不支持扩展选项因此也就没有提供 GROUPING 函数。 案例销售数据分析 接下来我们将会使用一个虚拟的销售数据集sales_data。该数据集包含了 2019 年 1 月 1 日到 2019 年 6 月 30 日三种产品在三个渠道每天的销售情况。示例表的创建脚本可以从图书《SQL编程思想》的配套网站下载以下是该表中的部分数据 saledate |product|channel|amount ----------|-------|-------|------- 2019-01-01|桔子 |淘宝 |1864.00 2019-01-01|桔子 |京东 |1329.00 2019-01-01|桔子 |店面 |1736.00 2019-01-01|香蕉 |淘宝 |1573.00 2019-01-01|香蕉 |京东 |1364.00 2019-01-01|香蕉 |店面 |1178.00 2019-01-01|苹果 |淘宝 | 511.00 2019-01-01|苹果 |京东 | 568.00 2019-01-01|苹果 |店面 | 847.00 ...我们首先通过分组汇总了解一下产品的整体销售情况 -- Oracle、Microsoft SQL Server 以及 PostgreSQL SELECT CASE GROUPING(product) WHEN 1 THEN 所有产品 ELSE product END AS 产品,CASE GROUPING(channel) WHEN 1 THEN 所有渠道 ELSE channel END AS 渠道,SUM(amount) 销售金额 FROM sales_data GROUP BY ROLLUP (product, channel) ORDER BY product, SUM(amount) DESC;其中GROUP BY ROLLUP 子句表示统计不同产品不同渠道的销售金额小计、不同产品所有渠道的销售金额合计以及所有产品的销售总计。查询返回的结果如下 产品 |渠道 |销售金额 ------|-------|--------- 桔子 |所有渠道| 909261.00 桔子 |京东 | 311799.00 桔子 |淘宝 | 302782.00 桔子 |店面 | 294680.00 苹果 |所有渠道| 937052.00 苹果 |京东 | 318614.00 苹果 |淘宝 | 311795.00 苹果 |店面 | 306643.00 香蕉 |所有渠道| 925369.00 香蕉 |店面 | 311445.00 香蕉 |淘宝 | 307891.00 香蕉 |京东 | 306033.00 所有产品|所有渠道|2771682.00在我们的模拟数据中桔子的销售金额为 909261 元在京东商城的销量最高在店面的销量最低苹果的销售金额为 937052 元在京东商城的销量最高在店面的销量最低香蕉的销售金额为 925369 元在店面的销量最高在京东商城的销量最低所有产品的销售金额总计为 2771682 元。 对于 MySQL我们可以使用 WITH ROLLUP 选项实现相同的功能。 在 Excel 中有一个分析功能叫作数据透视表Pivot Table数据透视表可以提供不同级别的数据统计、对比分析和趋势分析等。考虑一下如何通过 SQL 查询实现以下数据透视表 产品 |渠道 |1 月 |2 月 |3 月 |4 月 |5 月 |6 月 |【合计】 -------|-----|------|------|-------|------|------|------|------- 桔子 |京东 | 41289| 43913| 49803| 49256| 64889| 62649| 311799 桔子 |店面 | 41306| 37906| 48866| 48673| 58998| 58931| 294680 桔子 |淘宝 | 43488| 37598| 48621| 49919| 58530| 64626| 302782 桔子 |- - |126083|119417| 147290|147848|182417| 186206| 909261 苹果 |京东 | 38269| 40593| 56552| 56662| 64493| 62045| 318614 苹果 |店面 | 43845| 40539| 44909| 55646| 56771| 64933| 306643 苹果 |淘宝 | 42969| 43289| 48769| 58052| 58872| 59844| 311795 苹果 |- - |125083|124421| 150230|170360|180136| 186822| 937052 香蕉 |京东 | 36879| 36981| 51748| 54801| 64936| 60688| 306033 香蕉 |店面 | 41210| 39420| 50884| 52085| 60249| 67597| 311445 香蕉 |淘宝 | 42468| 41955| 52780| 54971| 56504| 59213| 307891 香蕉 |- - |120557|118356| 155412|161857|181689| 187498| 925369 【总计】|- - |371723|362194| 452932|480065|544242| 560526|2771682我们同样可以利用分组汇总加上 CASE 表达式实现以上报表 -- Oracle 和 PostgreSQL SELECT CASE GROUPING(product) WHEN 1 THEN 【总计】 ELSE product END AS 产品,CASE GROUPING(channel) WHEN 1 THEN -- ELSE channel END AS 渠道,SUM(CASE EXTRACT(MONTH FROM saledate) WHEN 1 THEN amount END) 1 月,SUM(CASE EXTRACT(MONTH FROM saledate) WHEN 2 THEN amount END) 2 月,SUM(CASE EXTRACT(MONTH FROM saledate) WHEN 3 THEN amount END) 3 月,SUM(CASE EXTRACT(MONTH FROM saledate) WHEN 4 THEN amount END) 4 月,SUM(CASE EXTRACT(MONTH FROM saledate) WHEN 5 THEN amount END) 5 月,SUM(CASE EXTRACT(MONTH FROM saledate) WHEN 6 THEN amount END) 6 月,SUM(amount) 【合计】 FROM sales_data GROUP BY ROLLUP (product, channel) ORDER BY product, channel;其中GROUP BY ROLLUP 子句表示统计不同产品不同渠道的销售金额小计、不同产品所有渠道的销售金额合计以及所有产品的销售总计EXTRACT 函数加上 CASE 表达式用于获取每个月的销售金额。 对于 MySQL我们需要使用 WITH ROLLUP 选项替换 ROLLUP。对于Microsoft SQL Server我们需要使用 DATEPART 函数替换 EXTRACT 函数。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/909915.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

苏州高端网站设计企业西安网络科技有限公司有哪些

1. 引言 限界上下文可以拆分为两个词,限界和上下文。限界:是指一个界限,具体的某一个范围。上下文:个人理解就是语境。 比如我们常说的段子: “我想静静。”这个句子一般是想表达“我想静一静”的意思。但是我们却把…

网站内容建设要求 age06建设六马路小学 网站

此文为人大金仓数据库安装程序(windows下kingbase开发及测试用)。 1 人大金仓-成为世界卓越的数据库产品与服务提供商 官方下载安装包,同时需要下载授权文件,补丁文件可以不下。 2 点击安装 3 选择授权文件 4 默认安装即可&…

饰品交易网站怎么做做礼品建什么网站

Kafka消费流程 消息是如何被消费者消费掉的。其中最核心的有以下内容。 1、多线程安全问题 2、群组协调 3、分区再均衡 1.多线程安全问题 当多个线程访问某个类时,这个类始终都能表现出正确的行为,那么就称这个类是线程安全的。 对于线程安全&…

武威市建设局网站 放管服网站服务公司业务范围包括

软件项目范围基准明确了项目的边界、目标和主要交付成果,有助于提高项目成本、进度和资源估算的准确性,便于实施项目控制,而且还可以帮助我们清楚分派责任,防止范围蔓延,从而提升项目的成功率。 如果没有明确确定范围基…

网站建设php的心得和体会动漫设计网站

建议将全局变量创建在.h/.cpp文件中,其中.h文件声明变量,.cpp文件中定义变量值。 在.h文件中定义变量,则工程多次#include该文件会出现“该文件已经被使用”。 具体示例如下: synchronize_data.h // // Created by qiaowei on…

大地资源影视免费观看淄博网站建设优化运营熊掌号

介绍 Nginx是一个高性能的Web服务器,它可以处理大量的并发请求,同时还可以作为负载均衡器和反向代理服务器。在本篇博文中,我们将介绍如何从入门到精通Nginx的使用。 Nginx的安装和配置 在开始使用Nginx之前,您需要先安装和配置…

mysql/oracle LEFT JOIN 取时间最大的数据

如下SQL ,一次任务执行结果 没有聚合到任务结果表,可以在任务结果表中查询出这个任务结果id,然后可根据任务结果id内存遍历或者通过not exists进行结果明细的成功失败查询。select t.task_id,t.task_name, maxr.tas…

6月6日证书 - 工信部人才交流中心PostgreSQL中级PGCP高级PGCM认证

恭喜上一期参加并通过工信部人才交流中心PostgreSQL管理员PG中级和PG高级认证考试的各位同学,纸质版证书到啦【9月16日】! 电子版证书可以在工信部人才交流中心官网查询,或者联系CUUG客服!工信部人才交流中心Postgr…

基于遗传算法与非线性规划的混合优化算法在电力系统最优潮流中的实现

基于遗传算法(GA)与非线性规划(NLP)的混合优化算法在电力系统最优潮流(OPF)中的实现一、混合算法架构设计 混合策略优势全局探索:GA处理非凸、多峰问题,避免陷入局部最优 局部开发:NLP(如内点法)加速收敛,…

【下一款产品】

从哪里获取灵感、如何判断价值、最后怎么选。 ⸻ 1️⃣ 灵感来源(参考哪些网站) 🔹 全球趋势/新产品 • Product Hunt → 每天看独立开发者和公司在推什么工具,评论区也能看到用户需求。 • Hacker News → 技术社…

数1的个数

//题意:给定一个十进制正整数n,写下从1到n的所有整数,然后数一下其中出现的数字“1”的个数。 //例如当n=2时,写下1,2。这样只出现了1个“1”;当n=12时,写下1,2,3,4,5,6,7,8,9,10,11,12。这样出现了5…

企业网站快速建站深圳网站搭建找谁

一、pytest跳过功能 1. 使用 pytest.skip 装饰器跳过测试用例 Pytest中的 pytest.skip 装饰器允许你跳过指定的测试用例。你可以将该装饰器应用于测试函数或测试类上。 import pytestpytest.mark.skip(reason"Skipping this test case") def test_skip():assert 1…

青州网站建设优化推广wordpress 网站图标设置

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 5.完整程序 1.程序功能描述 基于Kronig-Penney能带模型的MATLAB求解与仿真.综合利用 MATLAB提供的求解常微分方程、矩阵行列式、代数表达式化简及绘图等函数 ,可使 Kronig-Penney能带模型分析…

有没有做门面设计的网站网站备案掉了怎么办

烘焙预计算 前文:续_直接和间接光照这一篇小结:Unity烘焙预计算烘焙前的场景设置1.2.Contribute GI如下图:物体的Static和面板上的Contribute GILightmap的UV模型自带Lightmap的UVUnity 自动展Lightmap的UV1.3.Meta PassMeta Pass代码如下:1.4.Light Mode模式

做外贸都做哪些网站好免费下载网站开发国内外研究状况

感谢使用护卫神云查杀系统,该软件专门查杀网页木马,完全免费,欢迎大家使用。远程FTP查杀部分:1、点击【远程查杀】图标,如上图所示,进入远程FTP查杀页面:1、首先要求输入远程FTP连接信息&#x…

网站域名注册管理中心书店商城网站设计

以下内容仅为当前认识,可能有不足之处,欢迎讨论! 文章目录 stack容器queue容器 stack容器 是什么?功能是什么?常用接口是什么?局限性有哪些?优势又有哪些? 栈容器,先进…

相亲网站绑定微信怎么做南昌个人网站制作怎么做

一、video-player 介绍 video-player 是一个基于 video.js 的视频播放器组件,它提供了丰富的功能,包括视频播放、暂停、快进、快退、全屏、音量控制等。 video-player 的使用非常简单,如下安装即可。 npm install video.js videojs-player…

采网站建设南京发布最新通报

AOP简介 AOP(Aspect oriented Programming)面向切面编程,就是面向特定的方法编程,将方法比作一个一个的切面,可以向指定的方法执行前/后执行自己的逻辑。如统一获取方法的时间。 应用场景: 记录操作日志、权限控制、事务管理 优…

专业定制网站公司西安鑫瀚通网站建设

在上一篇《C#:异步编程中的 async 和 await》 中简单介绍了在 C# 中的异步编程以及 async 和 await 编程模型,本文介绍下异步编程的注意事项,主要有以下几个方面。同步中调用异步在同步代码中调用异步代码,容易导致死锁&#xff0…

做教程的网站内容怎么找wordpress适合二次开发吗

1 引言 React Conf 2019 在今年 10 月份举办,内容质量还是一如既往的高,如果想进一步学习前端或者 React,这个大会一定不能错过。 希望前端精读成为你学习成长路上的布道者,所以本期精读就介绍 React Conf 2019 - Day1 的相关内…