多维度数据计算,以下是唯一的方法吗

0
以下截图是数据格式:
QY_162    上海市闵行区    江川    刘琴    2016    02    2016-04    818.000000
QY_162    上海市闵行区    江川    刘琴    2016    01    2016-01    1062.000000
QY_162    上海市闵行区    莘庄    程洁    2016    02    2016-04    475.000000
QY_162    上海市闵行区    江川    常斯琴    2016    01    2016-03    697.000000
QY_162    上海市闵行区    颛桥    徐庆    2015    04    2015-12    1187.000000
QY_162    上海市闵行区    莘庄    王珊玲    2016    01    2016-02    703.000000
QY_162    上海市闵行区    江川    曹敏    2015    04    2015-12    1924.000000
QY_162    上海市闵行区    江川    曹敏    2016    01    2016-03    2183.000000
QY_162    上海市闵行区    江川    徐露    2015    04    2015-12    176.000000
QY_162    上海市闵行区    吴泾    徐军华    2016    02    2016-05    238.000000
需求是这样的:
1.对不同的zbid中的医生计算季度、年度数据,进行sum求和
2.对不同的zbid中的医院计算月度、季度、年度数据,进行sum求和
3.对不同的zbid中的行政区计算月度、季度、年度数据,进行sum求和

我目前的方法是这样的:
一个维度写一个select语句,也就是一个zbid写了8个select语句。
如下:
--医生季度
SELECT HOSPITAL,HOSPITALMC,DOCTOR,DOCTORMC,YEAR,QUARTER,SUM(ZXZ) 
FROM TB_APP_YW_DATA_SCJTYS
WHERE ZBID='QY_187'
GROUP BY HOSPITAL,HOSPITALMC,DOCTOR,DOCTORMC,YEAR,QUARTER;
--医生年度
SELECT HOSPITAL,HOSPITALMC,DOCTOR,DOCTORMC,YEAR,SUM(ZXZ) 
FROM TB_APP_YW_DATA_SCJTYS
WHERE ZBID='QY_187'
GROUP BY HOSPITAL,HOSPITALMC,DOCTOR,DOCTORMC,YEAR;
……
写了8个不同维度的select,显然一个zbid我写8个select,100个zbid就要写800个select

需要大家帮助的问题是:
1.能不能一个select 或者 更少的select就可以计算不同维度的数据?
2.不同zbid,可以使用游标进行循环计算,有没有其他的方式呢
已邀请:
0

- 取是能力,舍是境界 2016-07-18 回答

不同的zbid ,你分组的时候再加一个zbid不就可以了。
0

Third - Follow your heart to live 2016-07-20 回答

谢谢回复  ,因为不同的zbid,在计算不同维度的数据时,计算逻辑也不一样 ,不是单纯的sum,还要使用子查询等。
0

ldboyghg - 出入佳境 2016-08-09 回答

先根据 ZBID group by,
后面再根据其他的维度group by , 只不过sum,count的时候 用case when  ZBID= ? 来判断一下

要回复问题请先登录注册