2017-06-30 82 views
0

這可能是我的一個愚蠢的錯誤,但我不能完全弄清楚我的情況。 我試圖通過一組從下面的方式呈現一個子查詢拉數據來計算平均:AVG給出一個計數而不是平均值

TotalPDMPs DefaultClinicID 
     13996  -1 
     134   23 
     432   29 
     123   26 
     39   27 
     13   21 
     40   24 
     46   30 
     1   25 

現在平均每個「DefaultClinicID」爲「TotalPDMPs」計算是一樣的上面的數據。 這裏是我的計算平均查詢:

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

預期結果是什麼? – AvielNiego

+0

你的內部'select'將爲每個'DefaultClinicID'返回一個記錄你如何期待在外部查詢中每個'DefaultClinicID'的不同平均值 –

回答

0

按列分組是相同的,所以它通過DefaultClinicID獲取內部查詢中的計數,然後嘗試獲取相同DefaultClinicID的平均值。

這有道理嗎?當你用同樣的東西分組時,該列上的任何聚合都會返回相同的結果。因此,對於診所23的平均計算將是:134/1 = 134.

我認爲你只需要在你的內部查詢中做平均值,並得到你想要的。或者,也許平均(不同的p.patientID)是你在做什麼?

+0

它是有道理的。我試圖在每個診所的整個行上獲得'TotalPDMPs'的平均值。我如何修改我的查詢來實現此目的? –

+0

這是一個棘手的問題,因爲我不知道數據的性質。 PatientPescriptionRegistry中的同一患者是否多次出現?你想更詳細地回答什麼問題?每個診所的平均患者人數似乎對這些數據沒有任何意義。每個診所的不同數量的患者可能是有意義的。不同訪問的百分比是合理的。每個診所的患者百分比也可能有所幫助。診所每天的平均病人數量是合理的。 – Jesse

0

在已經按DefaultClinicID分組的內部子查詢中, 因此,每個唯一的DefaultClinicID已經只有一行。 x的平均值是x。

相關問題