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的更多相关文章

  1. oracle 聚合函数 LISTAGG ,将多行结果合并成一行

    LISTAGG( to_char(Item_Category_Name), ',') WITHIN GROUP(ORDER BY Item_Category_Name)  -- 将 Item_Cate ...

  2. Oracle 聚合函数

    聚合函数: SQL中提供的聚合函数可以用来统计.求和.求最值等等. 此处采用Oracle 11g中其他用户SCOTT中的EMP表,进行演示. –COUNT:统计行数量 COUNT(*)统计的是结果集的 ...

  3. oracle聚合函数avg()注意点

    avg:用avg函数进行平均运算时会忽略空值(即最终出现的平均值不对[如果原始数据中存在空值的话]),可以这样子来解决:avg(nvl(comm,0))或者sum(comm)/count(*)---- ...

  4. ORACLE聚合函数细节

    select * from emp order by mgr; 概要 select count(1), --14 sum(1), --14 count(*), --14 count(distinct ...

  5. oracle聚合函数XMLAGG用法简介

    XMLAGG函数语法基本如图,可以用于列转行,列转行函数在oracle里有好几种方法,wm_concat也可以做 这里介绍wm_concat是因为XMLAGG实现效果和wm_concat是一样的,只是 ...

  6. Oracle聚合函数

    max(),min(),avg(),sum() 其中 avg(),sum()只能操作数字  , max(),min()能操作数字.日期.字母 等.

  7. Spark基于自定义聚合函数实现【列转行、行转列】

    一.分析 Spark提供了非常丰富的算子,可以实现大部分的逻辑处理,例如,要实现行转列,可以用hiveContext中支持的concat_ws(',', collect_set('字段'))实现.但是 ...

  8. SQL——连接查询、聚合函数、开窗函数、分组功能、联合查询、子查询

    连接查询 inner join,用的最多,表示多张表一一对应 聚合函数 操作行数据,进行合并 sum.avg.count.max.min 开窗函数 将合并的数据分布到原表的每一行,相当于多出来了一列, ...

  9. SQL Server 2008 R2——PIVOT 行转列 以及聚合函数的选择

    ==================================声明================================== 本文原创,转载在正文中显要的注明作者和出处,并保证文章的完 ...

随机推荐

  1. 【最大流】POJ3236-ACM Computer Factory

    [题意] 装配一个电脑需要P个零件,现在给出N机器的信息,每个机器可以将k个电脑由状态{S1,S2..,Sp}转变为{Q1,Q2..,Qp},问最多能装配多少台电脑以及对应的方案? [思路] 1A.. ...

  2. 记录numpy和c++的混合编程

    准备记录numpy和c++的混合编程 #include <boost/python.hpp> #include <numpy/ndarrayobject.h> namespac ...

  3. codevs 1779 单词的划分

    1779 单词的划分 时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 题目描述 Description Problem有一个很长的由小写字母组成字符串.为了便于对 ...

  4. winform 使用SplashScreen窗口

    SplashScreen,就是平时我们说的溅射屏幕,任何一个做过客户端程序的coder应该对它都不陌生,因为它能提升用户体验,让软件看上去更美.SplashScreenForm通常进入程序时是打开,主 ...

  5. C# base64编码的字符串与图片互转

    protected string ImgToBase64String(string Imagefilename) { try { Bitmap bmp = new Bitmap(Imagefilena ...

  6. LookupError: unknown encoding: cp65001

    在CMD下解释运行python时出现LookupError: unknown encoding: cp65001错误(编码错误) 在cmd下chcp命令(大概是change codepage?)可查看 ...

  7. linux缓存nscd

    1.安装  yum -y install nscd 2.配置文件: /etc/nscd.conf 3.缓存文件:缓存DB文件在/var/db/nscd下.可以通过nscd -g查看统计的信息 4.清除 ...

  8. linux CMakeLists.txt 语法

    CMake入门教程 参考文献:http://www.ibm.com/developerworks/cn/linux/l-cn-cmake/index.html 官方网址:http://www.cmak ...

  9. iconv的安装和使用

    一.Linux下iconv的安装包的下载页面http://www.gnu.org/software/libiconv/ $ ./configure --prefix=/usr/local$ make$ ...

  10. fiddler在ios10.3系统抓包https失败原因解决

    一直是按照以往的设置抓包,设置代理ip,通过Safari下载安装证书,抓包https怎么显示证书无效呢?难道证书被apple设为黑名单了?google后发现,IOS10.3以后,安装了证书不是默认启用 ...