我有一个 DoB 字段。我想根据年龄将所有用户分类/分组到这些组中:
- <20
- 20-25
- 25-30
- 30-35
- 35-40
- 40-50
- >50
最佳答案
有几种方法可以做到这一点。如果你没有很多记录,你可以做类似的事情
select floor((datediff(now(),DOB_at)/365)/5) as year_group, count(*)
from users
group by floor((datediff(now(),DOB)/365)/5)
必须对此进行调整,以将 20 岁以下或 50 岁以上的 DOB 分组。
稍微好一点的方法是使用您的组查找表,它有两列,year_diff 和 group_name。
year_diff group_name
....values.....
18 '<20'
19 '<20'
20 '20-25'
21 '20-25'
22 '20-25'
23 '20-25'
24 '20-25'
25 '20-25'
26 '26-30'
....values.....
您的查询将是
select dob_lookup.group_name, count(*)
from users
join dob_lookup on floor((datediff(now(),users.DOB)/365)/5) = dob_lookup.year_diff
group by dob_lookup.group_name
关于php - 从日期字段按年龄分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6806761/