我有一个mysql表

表名测试

Id INT PRIMARY KEY
Lahir Date
Gender CHAR(1)
Nama Varchar(100)
id_desa CHAR(4)


我如何获得这样的报告?

id_desa 0-10 11-20 21-30 31-40 41-50
10B      1      2     0    1     8
10C      2      4     7    1     0.

最佳答案

尝试

select
     id_desa,
     sum(case when FLOOR(DATEDIFF(Lahir,NOW())/365) between 0 and 10 then 1 else 0 end) as '0-10',
     sum(case when FLOOR(DATEDIFF(Lahir,NOW())/365) between 11 and 20 then 1 else 0 end) as '11-20',
     sum(case when FLOOR(DATEDIFF(Lahir,NOW())/365) between 21 and 30 then 1 else 0 end) as '21-30',
     sum(case when FLOOR(DATEDIFF(Lahir,NOW())/365) between 31 and 40 then 1 else 0 end) as '31-40',
     sum(case when FLOOR(DATEDIFF(Lahir,NOW())/365) between 41 and 50 then 1 else 0 end) as '41-50'
    from tbl

关于mysql - 计算每个年龄段的记录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26397059/

10-12 04:36