让所有年龄段的人都依赖 table
Get all ages count on a table
我的目标是让我的数据库每年有多少用户。
我将生日保存在时间戳中。
阅读此解决方案后
How to count 2 different data in one query
让我想知道,如果我拥有的最年长的成员是 120 岁,我是否必须写 120 个案例,每个案例都将计算 "between" 定义一年的两个时间戳?
这听起来有点奇怪,没有其他方法可以完成这项工作吗?
期望的结果:
1 - 0 岁
年龄 2 - 1 人
.
.
.
20 岁 - 314 人
年龄 21 - 30 人
.
.
.
年龄 25 - 47 人
.
.
120岁 - 1人
您不希望每个年龄都有一个查询。假设你有一个可以计算年龄到最近年份的查询,那么你可以得到一个计数
SELECT (..expression..) AS "age", count(*) FROM USERS GROUP BY "age"
如果您正在寻找 (..expression..)
来计算年龄,您可能需要接近
的东西
EXTRACT(year FROM CURRENT_DATE()) - EXTRACT(year FROM birthdate)
- IF(DATE_FORMAT(CURRENT_DATE(),"%c%d") < DATE_FORMAT(birthdate,"%c%d"),1,0)
但您可能更喜欢其他(可能更有效)版本。
我的目标是让我的数据库每年有多少用户。 我将生日保存在时间戳中。 阅读此解决方案后 How to count 2 different data in one query
让我想知道,如果我拥有的最年长的成员是 120 岁,我是否必须写 120 个案例,每个案例都将计算 "between" 定义一年的两个时间戳?
这听起来有点奇怪,没有其他方法可以完成这项工作吗?
期望的结果:
1 - 0 岁
年龄 2 - 1 人
.
.
.
20 岁 - 314 人
年龄 21 - 30 人
.
.
.
年龄 25 - 47 人
.
.
120岁 - 1人
您不希望每个年龄都有一个查询。假设你有一个可以计算年龄到最近年份的查询,那么你可以得到一个计数
SELECT (..expression..) AS "age", count(*) FROM USERS GROUP BY "age"
如果您正在寻找 (..expression..)
来计算年龄,您可能需要接近
EXTRACT(year FROM CURRENT_DATE()) - EXTRACT(year FROM birthdate)
- IF(DATE_FORMAT(CURRENT_DATE(),"%c%d") < DATE_FORMAT(birthdate,"%c%d"),1,0)
但您可能更喜欢其他(可能更有效)版本。