0
したがって、グループ化したCASE文があります。しかし、私はまた、グループ化されたCASEの結果ごとに合計の割合を計算しようとしていました。私が下で作ったコマンドを実行すると、グループ化されたCaseステートメントで合計の%を計算する
Region Number Percentage
West Coast 11675 0
Not West Coast 104620 0
なぜ「パーセンテージ」が「0」となるのか分かりません。
ここに「問題の行」というラベルが付いたコードがあります。
With [Summed Region] AS
(
SELECT
[State Province],
CASE [State Province]
WHEN 'Oregon' THEN 'West Coast'
WHEN 'Washington' THEN 'West Coast'
WHEN 'California' THEN 'West Coast'
ELSE 'Not West Coast'
END AS 'Region'
FROM
[WideWorldImportersDW].[Dimension].[City]
)
SELECT
Region,
count(Region) AS Number,
---THE PROBLEM LINE IS BELOW THIS---
count(region)/(select count(*) FROM [WideWorldImportersDW].[Dimension].
[City]) AS Percentage
FROM
[Summed Region]
GROUP BY
Region
その行の問題は何ですか? 2つの部分を分割すると、それぞれ正しい番号が返されます。しかし、私が1つを他のものに分けると、私は「0」を得る。
ありがとうございます!
まあ、おかげで簡単でした! 12分後、私は質問に答えるようにマークします... – bbb0777
ああええと...私は実際には窓関数でそれをやったと思いますが、明らかにCASE&GROUPを組み合わせることは私の想像力の限界に達しました。再度、感謝します!あまりにも複雑ですが、1.0を乗算するのではなく、整数で分割する整数全体を乗り越えるために 'CAST(count(*)AS FLOAT) 'を実行することもできます – bbb0777