我想为单个"患者"返回多个汇总级别的"分数"列的SUM和SAMPLE SIZE。问题是,当我添加汇总级别时,其中一些汇总级别会将每个患者的一行拆分为每个患者的多行。当这些患者被分开时,汇总级别的总和开始不准确。有没有办法使用一个子查询,每个"Patient"有多行,但在每个级别只有Group By/SUM,其中"Patient"是唯一的?
子查询结果示例:
Patient Location DiseaseState Care Team Member Score
1 CityA Hypertension Provider1 10
1 CityA Hypertension Pharmacist1 10
1 CityA Hypertension Health Coach1 10
1 CityA Diabetes Provider1 10
1 CityA Diabetes Pharmacist1 10
1 CityA Diabetes Health Coach1 10
2 CityB Hypertension Provider1 20
2 CityB Hypertension Pharmacist2 20
2 CityB Hypertension Health Coach1 20
2 CityB Diabetes Provider1 20
2 CityB Diabetes Pharmacist2 20
2 CityB Diabetes Health Coach1 20
2 CityB CKD Provider1 20
2 CityB CKD Pharmacist2 20
2 CityB CKD Health Coach1 20
我想从这个子查询中总结的是每个"护理团队成员"、"DiseaseState"one_answers"Location"的平均分数。如果我将"护理团队成员"的"分数"相加,我会得到比我应该得到的分数高得多的分数。我能以某种方式求和"分数"吗?其中"患者"是唯一的,并按"地点"、"DiseaseState"、"护理团队成员"等分组。?
您应该能够将PARTITION与SUM分析函数一起使用。类似于:
SELECT SUM(SCORE) OVER (PARTITION BY "Location", "DiseaseState", "Care Team Member")
FROM TABLE
partition子句的作用类似于group by
,只对每个组的值求和,但不需要修改现有的group by
子句
以下链接提供了一些附加信息和使用SUM作为分析函数的示例http://docs.oracle.com/cd/E11882_01/server.112/e41084/functions182.htm#SQLRF06115