oracle聚合函数及行专列,pivot rollup cube
1、原始数据

--方法-:
--以单位分组,计算每类特殊情况的合计以及按照单位的小计数
with a as
(SELECT b.szfz,
case when tsqk is not null then tsqk else -1 end tsqk1,
sum(tsqksl) tsqksl
FROM stat_tsqk_dw b
group by rollup(szfz, tsqk))
select * from a pivot(sum(tsqksl) for tsqk1 in(32, 33, 34, 35, 36, -1))
union
--计数合计列,计算所有单位的各类特殊情况合计数
select '' szfz, b.*
from (select case when tsqk is not null then tsqk else -1 end tsqk1,
sum(tsqksl) tsqksl
from stat_tsqk_dw a
group by cube(tsqk)) PIVOT(SUM(TSQKSL) FOR TSQK1 IN(32,
33,
34,
35,
36,
-1)) b
结果

数据表结构
-- Create table
create table STAT_TSQK_DW
(
tjsj VARCHAR2(20) not null,
hjlx NUMBER(4) not null,
sglx NUMBER(4) not null,
sjlx NUMBER(4) not null,
szfz VARCHAR2(16) not null,
tsqk NUMBER(4) not null,
qxyy NUMBER(4) not null,
tsqksl NUMBER(9),
qxyysl NUMBER(9)
)
tablespace USERS
pctfree 10
initrans 1
maxtrans 255
storage
(
initial 64
next 1
minextents 1
maxextents unlimited
);
-- Add comments to the table
comment on table STAT_TSQK_DW
is '统计-出车特殊情况-单位/特殊情况';
-- Add comments to the columns
comment on column STAT_TSQK_DW.tjsj
is '统计时间(粒度分钟)';
comment on column STAT_TSQK_DW.hjlx
is '呼叫类型';
comment on column STAT_TSQK_DW.sglx
is '事故类型';
comment on column STAT_TSQK_DW.sjlx
is '事件类型';
comment on column STAT_TSQK_DW.szfz
is '所在分站';
comment on column STAT_TSQK_DW.tsqk
is '特殊情况';
comment on column STAT_TSQK_DW.qxyy
is '取消原因';
comment on column STAT_TSQK_DW.tsqksl
is '特殊情况数量';
comment on column STAT_TSQK_DW.qxyysl
is '取消原因数量';
-- Create/Recreate primary, unique and foreign key constraints
alter table STAT_TSQK_DW
add constraint PK_STAT_TSQK_DW primary key (TJSJ, HJLX, SGLX, SJLX, SZFZ, TSQK, QXYY)
using index
tablespace USERS
pctfree 10
initrans 2
maxtrans 255
storage
(
initial 64K
next 1M
minextents 1
maxextents unlimited
);
数据:
prompt Importing table STAT_TSQK_DW...
set feedback off
set define off
insert into STAT_TSQK_DW (TJSJ, HJLX, SGLX, SJLX, SZFZ, TSQK, QXYY, TSQKSL, QXYYSL)
values ('2018-09-18 04:01:00', 10, 10, 10, '3309000108', 33, -9999, 1, 0); insert into STAT_TSQK_DW (TJSJ, HJLX, SGLX, SJLX, SZFZ, TSQK, QXYY, TSQKSL, QXYYSL)
values ('2018-09-17 23:26:00', 10, 10, 10, '3309000213', 33, -9999, 1, 0); insert into STAT_TSQK_DW (TJSJ, HJLX, SGLX, SJLX, SZFZ, TSQK, QXYY, TSQKSL, QXYYSL)
values ('2018-09-18 11:39:00', 10, 10, 10, '3309000108', -9999, 100, 0, 1); insert into STAT_TSQK_DW (TJSJ, HJLX, SGLX, SJLX, SZFZ, TSQK, QXYY, TSQKSL, QXYYSL)
values ('2018-09-19 10:38:00', 10, 10, 10, '3309000108', -9999, 100, 0, 1); insert into STAT_TSQK_DW (TJSJ, HJLX, SGLX, SJLX, SZFZ, TSQK, QXYY, TSQKSL, QXYYSL)
values ('2018-09-18 11:17:00', 50, 10, 10, '3309000108', 33, -9999, 1, 0); insert into STAT_TSQK_DW (TJSJ, HJLX, SGLX, SJLX, SZFZ, TSQK, QXYY, TSQKSL, QXYYSL)
values ('2018-09-17 01:56:00', 10, 10, 10, '3309000307', 36, -9999, 1, 0); insert into STAT_TSQK_DW (TJSJ, HJLX, SGLX, SJLX, SZFZ, TSQK, QXYY, TSQKSL, QXYYSL)
values ('2018-09-17 17:50:00', 10, 10, 10, '3309000101', 34, -9999, 1, 0); insert into STAT_TSQK_DW (TJSJ, HJLX, SGLX, SJLX, SZFZ, TSQK, QXYY, TSQKSL, QXYYSL)
values ('2018-09-17 02:49:00', 10, 10, 10, '3309000213', 33, -9999, 1, 0); insert into STAT_TSQK_DW (TJSJ, HJLX, SGLX, SJLX, SZFZ, TSQK, QXYY, TSQKSL, QXYYSL)
values ('2018-09-18 10:12:00', 10, 10, 10, '3309000213', 33, -9999, 1, 0); insert into STAT_TSQK_DW (TJSJ, HJLX, SGLX, SJLX, SZFZ, TSQK, QXYY, TSQKSL, QXYYSL)
values ('2018-09-18 07:23:00', 10, 10, 10, '3309000309', 33, -9999, 1, 0); insert into STAT_TSQK_DW (TJSJ, HJLX, SGLX, SJLX, SZFZ, TSQK, QXYY, TSQKSL, QXYYSL)
values ('2018-09-18 01:25:00', 10, 10, 10, '3309000106', 33, 0, 1, 0); insert into STAT_TSQK_DW (TJSJ, HJLX, SGLX, SJLX, SZFZ, TSQK, QXYY, TSQKSL, QXYYSL)
values ('2018-09-19 10:52:00', 60, 10, 10, '3309000108', 33, -9999, 1, 0); insert into STAT_TSQK_DW (TJSJ, HJLX, SGLX, SJLX, SZFZ, TSQK, QXYY, TSQKSL, QXYYSL)
values ('2018-09-17 14:44:00', 10, 10, 10, '3309000309', 33, -9999, 1, 0); insert into STAT_TSQK_DW (TJSJ, HJLX, SGLX, SJLX, SZFZ, TSQK, QXYY, TSQKSL, QXYYSL)
values ('2018-09-18 16:50:00', 10, 10, 10, '3309000302', 33, -9999, 1, 0); insert into STAT_TSQK_DW (TJSJ, HJLX, SGLX, SJLX, SZFZ, TSQK, QXYY, TSQKSL, QXYYSL)
values ('2018-09-18 07:41:00', 10, 10, 10, '3309000106', 33, -9999, 1, 0); insert into STAT_TSQK_DW (TJSJ, HJLX, SGLX, SJLX, SZFZ, TSQK, QXYY, TSQKSL, QXYYSL)
values ('2018-09-17 17:04:00', 10, 10, 10, '3309000302', 35, -9999, 1, 0); insert into STAT_TSQK_DW (TJSJ, HJLX, SGLX, SJLX, SZFZ, TSQK, QXYY, TSQKSL, QXYYSL)
values ('2018-09-17 15:22:00', 10, 10, 10, '3309000101', 33, -9999, 1, 0); insert into STAT_TSQK_DW (TJSJ, HJLX, SGLX, SJLX, SZFZ, TSQK, QXYY, TSQKSL, QXYYSL)
values ('2018-09-18 18:24:00', 10, 10, 10, '3309000108', 1000, 140, 1, 1); insert into STAT_TSQK_DW (TJSJ, HJLX, SGLX, SJLX, SZFZ, TSQK, QXYY, TSQKSL, QXYYSL)
values ('2018-09-17 02:16:00', 10, 10, 10, '3309000108', 33, -9999, 1, 0); insert into STAT_TSQK_DW (TJSJ, HJLX, SGLX, SJLX, SZFZ, TSQK, QXYY, TSQKSL, QXYYSL)
values ('2018-09-17 12:14:00', 10, 10, 10, '3309000111', 33, -9999, 1, 0); insert into STAT_TSQK_DW (TJSJ, HJLX, SGLX, SJLX, SZFZ, TSQK, QXYY, TSQKSL, QXYYSL)
values ('2018-09-18 18:01:00', 10, 10, 10, '3309000312', 33, -9999, 1, 0); insert into STAT_TSQK_DW (TJSJ, HJLX, SGLX, SJLX, SZFZ, TSQK, QXYY, TSQKSL, QXYYSL)
values ('2018-09-18 12:41:00', 10, 10, 10, '3309000310', 33, -9999, 1, 0); insert into STAT_TSQK_DW (TJSJ, HJLX, SGLX, SJLX, SZFZ, TSQK, QXYY, TSQKSL, QXYYSL)
values ('2018-09-18 00:47:00', 10, 10, 10, '3309000213', 33, -9999, 1, 0); insert into STAT_TSQK_DW (TJSJ, HJLX, SGLX, SJLX, SZFZ, TSQK, QXYY, TSQKSL, QXYYSL)
values ('2018-09-17 02:00:00', 10, 10, 10, '3309000309', 33, -9999, 1, 0); insert into STAT_TSQK_DW (TJSJ, HJLX, SGLX, SJLX, SZFZ, TSQK, QXYY, TSQKSL, QXYYSL)
values ('2018-09-18 19:08:00', 60, 10, 10, '3309000302', 35, 0, 1, 0); insert into STAT_TSQK_DW (TJSJ, HJLX, SGLX, SJLX, SZFZ, TSQK, QXYY, TSQKSL, QXYYSL)
values ('2018-09-17 03:04:00', 10, 10, 10, '3309000101', 33, -9999, 1, 0); insert into STAT_TSQK_DW (TJSJ, HJLX, SGLX, SJLX, SZFZ, TSQK, QXYY, TSQKSL, QXYYSL)
values ('2018-09-18 19:08:00', 60, 10, 10, '3309000307', 35, 0, 1, 0); insert into STAT_TSQK_DW (TJSJ, HJLX, SGLX, SJLX, SZFZ, TSQK, QXYY, TSQKSL, QXYYSL)
values ('2018-09-17 21:53:00', 10, 10, 10, '3309000302', 35, -9999, 1, 0); prompt Done.
oracle聚合函数及行专列,pivot rollup cube的更多相关文章
- oracle 聚合函数 LISTAGG ,将多行结果合并成一行
LISTAGG( to_char(Item_Category_Name), ',') WITHIN GROUP(ORDER BY Item_Category_Name) -- 将 Item_Cate ...
- Oracle 聚合函数
聚合函数: SQL中提供的聚合函数可以用来统计.求和.求最值等等. 此处采用Oracle 11g中其他用户SCOTT中的EMP表,进行演示. –COUNT:统计行数量 COUNT(*)统计的是结果集的 ...
- oracle聚合函数avg()注意点
avg:用avg函数进行平均运算时会忽略空值(即最终出现的平均值不对[如果原始数据中存在空值的话]),可以这样子来解决:avg(nvl(comm,0))或者sum(comm)/count(*)---- ...
- ORACLE聚合函数细节
select * from emp order by mgr; 概要 select count(1), --14 sum(1), --14 count(*), --14 count(distinct ...
- oracle聚合函数XMLAGG用法简介
XMLAGG函数语法基本如图,可以用于列转行,列转行函数在oracle里有好几种方法,wm_concat也可以做 这里介绍wm_concat是因为XMLAGG实现效果和wm_concat是一样的,只是 ...
- Oracle聚合函数
max(),min(),avg(),sum() 其中 avg(),sum()只能操作数字 , max(),min()能操作数字.日期.字母 等.
- Spark基于自定义聚合函数实现【列转行、行转列】
一.分析 Spark提供了非常丰富的算子,可以实现大部分的逻辑处理,例如,要实现行转列,可以用hiveContext中支持的concat_ws(',', collect_set('字段'))实现.但是 ...
- SQL——连接查询、聚合函数、开窗函数、分组功能、联合查询、子查询
连接查询 inner join,用的最多,表示多张表一一对应 聚合函数 操作行数据,进行合并 sum.avg.count.max.min 开窗函数 将合并的数据分布到原表的每一行,相当于多出来了一列, ...
- SQL Server 2008 R2——PIVOT 行转列 以及聚合函数的选择
==================================声明================================== 本文原创,转载在正文中显要的注明作者和出处,并保证文章的完 ...
随机推荐
- html基础知识介绍
1 前端概要 前端三大利器 1.html 赤裸裸的人 2.css 穿上华丽的衣服 3.js 让人生动起来 2 HTML本质及在web程序中的作用 2.1 介绍 HTML 1.一套规则,浏览 ...
- Problem D: 指针:调用自定义排序函数sort,对输入的n个数进行从小到大输出。
#include<stdio.h> int sort(int *p,int n) { int i,j,temp; ;i<n-;i++) for(j=i;j<n;j++) if( ...
- SpringBoot使用Gradle构建war包
Spring Boot默认将应用打包成可执行的jar包.有时候需要打包成war包部署在tomcat等容器.下面简单介绍下打包的步骤. 一.修改gradle.build文件 1.1 添加如下配置 app ...
- 最小生成树(Prime算法)
最小生成树一·Prim算法 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 最近,小Hi很喜欢玩的一款游戏模拟城市开放出了新Mod,在这个Mod中,玩家可以拥有不止一个城 ...
- java Servlet Filter 拦截Ajax请求,统一处理session超时的问题
后台增加filter,注意不要把druid也屏蔽了 import java.io.IOException; import javax.servlet.Filter; import javax.serv ...
- 利用tempo将json数据填充到html模板
1.下载tempo 2.使用 <!DOCTYPE html> <html> <head lang="zn-ch"> <meta chars ...
- 使用MyEclipse 2014构建Maven项目的两种方法
前提: MyEclipse已配置Maven,具体步骤见http://blog.csdn.net/haishu_zheng/article/details/51492491 方法一: 1 File--& ...
- 《大规模web服务开发技术》笔记
前段时间趁空把<大规模web服务开发技术>这本书看完了,今天用一下午时间重新翻了一遍,把其中的要点记了下来,权当复习和备忘.由于自己对数据压缩.全文检索等还算比较熟,所以笔记内容主要涉及前 ...
- (转)MySQL的JDBC驱动源码解析
一.背景 MySQL是一个中小型关系型数据库管理系统,目前我们淘宝也使用的也非常广泛.为了对开发中间DAO持久层的问题能有更深的理解以及最近在使用的phoenix on Hbase的SQL也是实现的J ...
- 把mysql的数据导出成txt
把mysql的数据导出成txt select a from b into outfile '/sqlfile/a.txt'; my.ini里需要设置secure_file_priv = d:/sqlf ...