我試圖從 dbo.DimCustomer 獲得最高(100)年收入(YearlyIncome)的百分比,我想要兩列“%M”和“%F”,顯示男性和女性的年收入百分比
這是我的代碼:
Select Top(100)
Case dbo.DimCustomer.Gender
When 'M' Then (Count(dbo.DimCustomer.Gender)*100)/sum(YearlyIncome)
End as '%M',
Case dbo.DimCustomer.Gender
When 'F' Then (Count(dbo.DimCustomer.Gender)*100)/sum(YearlyIncome)
End as '%F'
From
dbo.DimCustomer
Group By
Gender
這是我得到的結果。我做得對嗎?
我可以不顯示它們Null- 只有 2 列并排顯示1 行,這是百分比嗎?
uj5u.com熱心網友回復:
要將它們放入同一行,您可以使用條件聚合。
SELECT
MalePct = SUM(CASE WHEN c.Gender = 'M' THEN c.YearlyIncome END) * 100.0 / SUM(c.YearlyIncome),
FemalePct = SUM(CASE WHEN c.Gender = 'F' THEN c.YearlyIncome END) * 100.0 / SUM(c.YearlyIncome)
FROM (
SELECT TOP (100)
c.YearlyIncome,
c.Gender
FROM dbo.DimCustomer c
ORDER BY c.YearlyIncome DESC
) c;
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/403169.html
標籤:
上一篇:按天分組,但也顯示當天的時間
