gpt4 book ai didi

mysql - 如何在 MySQL 查询中对年龄范围进行 GROUP BY

转载 作者:太空宇宙 更新时间:2023-11-03 12:20:42 26 4
gpt4 key购买 nike

我有一个表,其中有一列名为“年龄”。我试图选择一个年龄范围,然后按这些范围对它们进行分组。这是我到目前为止所得到的,但无法让它工作:

select t.age as [range], count(*) as [occurences]
from (
select age,
case when age >= 0 and age < 10 then '0-9'
when age >= 10 and age < 20 then '10-19'
when age >= 20 and age < 20 then '20-29'
when age >= 30 and age < 40 then '30-39'
else '40+' end as range
from t) t
group by t.age

完成我想做的事情的最简单方法是什么?在我的案例中,“年龄”列在表“联系人”中。

最佳答案

工作正常,有一些变化。 (这里是 an SQLFiddle to prove it 。)

select t.range, count(*) as `occurences`
from (
select age,
case when age >= 0 and age < 10 then '0-9'
when age >= 10 and age < 20 then '10-19'
when age >= 20 and age < 20 then '20-29'
when age >= 30 and age < 40 then '30-39'
else '40+' end as `range`
from t) as t
group by t.range
  1. MySQL 使用 `ident` quoting by default (和 RANGE is a reserved word 所以需要引用),并且;
  2. GROUP BY 需要超过 t.range(而不是 t.age)才有意义。同样,select 子句应该选择范围。

虽然我建议选择不同的别名,但在重新使用“t”时它会很好地解析/执行。

关于mysql - 如何在 MySQL 查询中对年龄范围进行 GROUP BY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20208861/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com