0

これが初心者の質問である場合は申し訳ありません。単一のクエリで異なる where 条件を使用して Count のリストを取得することは可能ですか? 基本的には、年齢別の応募者数を示すリストを取得しようとしています。例 20 - 29 30 - 39 など

どうもありがとう、アンディ

4

2 に答える 2

0

たぶん、このようなものがあなたのために働くでしょう

SELECT SUM(case where DATEDIFF(YEAR, [dob], GETDATE()) between 20 and 29 then 1 else 0) AS 'Age_20_29',
SUM(case where DATEDIFF(YEAR, [dob], GETDATE()) between 30 and 39 then 1 else 0) AS 'Age_30_39',
[etc.]
FROM myTbl
于 2012-04-05T22:27:47.973 に答える
0
;WITH AgeGroups AS (
SELECT
  CASE 
    WHEN FLOOR(DATEDIFF(DAY, DOB, GETDATE()) / 365.25 BETWEEN 20 AND 29 
      THEN '20 - 29'
    WHEN FLOOR(DATEDIFF(DAY, DOB, GETDATE()) / 365.25 BETWEEN 30 AND 39 
      THEN '30 - 39'
  END AS AgeGroup
FROM YourTable
)
SELECT
  AgeGroup,
  COUNT(*) AS AgeGroupCount
FROM AgeGroups
GROUP BY AgeGroup
于 2012-04-05T22:23:33.597 に答える