多维度数据计算,以下是唯一的方法吗
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,可以使用游标进行循环计算,有没有其他的方式呢
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,可以使用游标进行循环计算,有没有其他的方式呢
没有找到相关结果
重要提示:提问者不能发表回复,可以通过评论与回答者沟通,沟通后可以通过编辑功能完善问题描述,以便后续其他人能够更容易理解问题.
3 个回复
悟 - 取是能力,舍是境界 2016-07-18 回答
赞同来自:
Third - Follow your heart to live 2016-07-20 回答
赞同来自:
ldboyghg - 出入佳境 2016-08-09 回答
赞同来自:
后面再根据其他的维度group by , 只不过sum,count的时候 用case when ZBID= ? 来判断一下