这可能是我最后的一个愚蠢的错误,但我无法在我的身上弄明白。 我试图计算从以下列方式呈现的子查询中提取的一组数据的平均值:
TotalPDMPs DefaultClinicID
13996 -1
134 23
432 29
123 26
39 27
13 21
40 24
46 30
1 25
现在,为'TotalPDMPs'计算的每个'DefaultClinicID'的平均值与上面的数据相同。 这是我计算平均值的查询:
select DefaultClinicID as ClinicID, AVG(TotalPDMPs)
from
(select count(p.PatientID) as TotalPDMPs, DefaultClinicID from PatientPrescriptionRegistry ppr, Patient p
where p.PatientID = ppr.PatientID
and p.NetworkID = 2
group by DefaultClinicID) p
group by DefaultClinicID
有人可以告诉我这里我做错了吗?
感谢。
答案 0 :(得分:0)
group by列是相同的,因此它通过DefaultClinicID获取内部查询中的计数,然后尝试获取相同DefaultClinicID的平均值。
这有意义吗?当您按相同的事物分组时,该列上的任何聚合都将返回相同的内容。因此,对于诊所23,平均计算将是:134/1 = 134.
我认为你只需要在你的内部查询中做平均值,你得到你想要的。或者avg(不同的p.patientID)就是你所追求的?
答案 1 :(得分:0)
在内部子查询中,您已按DefaultClinicID分组, 因此每个唯一的DefaultClinicID只有一行。 并且x的平均值是x。