ケース ステートメントを使用して、いくつかの異なる年齢グループの Count(*) を決定していますが、すべての年齢グループの合計に関連するため、各年齢グループのパーセンテージを取得する必要があります。これは初心者の質問であることは知っていますが、行き詰まっています。ありがとうアンディ
これが私が使用しようとしているコードです。
WITH AgeGroups AS (
SELECT
CASE
WHEN DATEDIFF(YEAR, party.birthdate, GETDATE()) < 21 THEN 'Under 21'
WHEN DATEDIFF(YEAR, party.birthdate, GETDATE()) BETWEEN 21 AND 29 THEN '21 - 29'
WHEN DATEDIFF(YEAR, party.birthdate, GETDATE()) BETWEEN 30 AND 39 THEN '30 - 39'
WHEN DATEDIFF(YEAR, party.birthdate, GETDATE()) BETWEEN 40 AND 49 THEN '40 - 49'
WHEN DATEDIFF(YEAR, party.birthdate, GETDATE()) BETWEEN 50 AND 59 THEN '50 - 59'
WHEN DATEDIFF(YEAR, party.birthdate, GETDATE()) > 60 THEN '60 and Over'
ELSE 'Unkown'
END AS AgeGroup
FROM party
LEFT OUTER JOIN volunteer on partyID = volunteer.partyID
WHERE volunteer.swornDate BETWEEN @startDate AND @endDate)
SELECT AgeGroup, COUNT(*) AS AgeGroupCount, Convert(decimal(18,2),
(1.0*Count(*)/@Total * 100)) as percentage
FROM AgeGroups
GROUP BY AgeGroup
変数 @Total にすべての年齢層の数を入力しようとしています