[英]count and divide two columns of the same table in sql
我需要獲取ID分別為11和12的記錄數。 然后,我必須按句點將它們分組(即1,2,3,4,5),並將每個ID除以其對應的組。 即(ID數量= 11,期間1)/(ID數量= 12,期間1)
我已經試過了。 但這只是給我一個數。 我如何將它們划分在同一張表中。
范例:
SELECT COUNT(pNum), SK_MetricDatePeriod , SK_MetricID
FROM
(
SELECT SK_PatientID as pNum , SK_MetricDatePeriod ,SK_MetricID FROM [IntegratedCare].[report].[MetricValues] WHERE SK_MetricID = 11
UNION ALL
SELECT SK_PatientID ,SK_MetricDatePeriod , SK_MetricID FROM [IntegratedCare].[report].[MetricValues] WHERE SK_MetricID = 12
) t
WHERE pNum IS NOT NULL
GROUP BY SK_MetricID
,SK_MetricDatePeriod
ORDER BY SK_MetricID,SK_MetricDatePeriod;
結果是:
Count MetricPeriod MetricID
10199 1 11
10075 2 11
9991 3 11
9891 4 11
8952 5 11
12298 1 12
12130 2 12
12058 3 12
11943 4 12
10860 5 12
如何計算和划分。 在上述查詢中。
結果我看起來像:
DividedResult MetricPeriod
10199 1
10075 2
9991 3
9891 4
8952 5
DivideResult是通過將(周期= 1且度量標准ID = 11的計數值)/(周期= 1且度量標准ID = 12的計數值)相除得到的
擁有計數..避免被0除
SELECT count(SK_PatientID) as pNum
, count(case when SK_MetricID = 11 then 0 end) / count(case when SK_MetricID = 12 then 0 end)
, SK_MetricDatePeriod
FROM [MetricValues]
WHERE SK_MetricID In (11, 12)
GROUP BY SK_MetricDatePeriod
Having count(case when SK_MetricID = 12 then 0 end) > 0
沒有一個完整的答案,但它不會讓我發表評論。
將原始查詢選擇到工作表中,然后將pNum除以MetricPeriod = MetricPeriod,會不會更容易
如果您只是尋找每個MetricID的平均值,則可以將每個出現的期間的pnum相加然后除以期間的總數? 只是拋出一些想法,希望這會有所幫助。
在這里我使用了案例陳述,它對我有用
select CompanyCode ,'Commission Pec', Year
,sum(case when CommissionType='Commission Recevied' then JAN else 0 end)/sum(case when CommissionType='Net Payments from WM' and isnull(JAN,0)<>0 then JAN else 1 end)
from Commission_Consolidate
group by CompanyCode,Year
end
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.