让所有年龄段的人都依赖 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)

但您可能更喜欢其他(可能更有效)版本。