鉴于birthing_year和personal_id,我想创建var“ age”,然后将personal_id分组为截至2018年的年龄段(范围)。
我尝试过的事情:
SELECT personal_id, (2018 - birth_year) AS age
FROM mydatabase
WHERE birth_year is not null
GROUP BY CASE
WHEN age between 18 and 24 THEN '18-24'
WHEN age between 25 and 34 THEN '25-34'
WHEN age between 35 and 44 THEN '35-44'
WHEN age between 45 and 54 THEN '45-54'
WHEN age between 55 and 64 THEN '55-64'
WHEN age > 64 THEN '65+'
END
我收到一个错误消息,说“年龄”不是列名。我假设CASE语句可能需要嵌套,如下所示:
SELECT personal_id
FROM
(SELECT personal_id, (2018 - birth_year) as age,
CASE
WHEN age between 18 and 24 THEN '18-24'
WHEN age between 25 and 34 THEN '25-34'
WHEN age between 35 and 44 THEN '35-44'
WHEN age between 45 and 54 THEN '45-54'
WHEN age between 55 and 64 THEN '55-64'
WHEN age > 64 THEN '65+'
ELSE 0
END AS age_group
FROM mydatabase
).
这背后的理想选择是先创建“年龄”变量,然后再进行分类。
我希望这足够清楚。谢谢!
使用APPLY
:
不允许使用内联别名