【发布时间】:2015-05-14 16:33:42
【问题描述】:
我的查询有问题。
我有一张这样的桌子: tbl_people
id | startDate | endDate | Gender
1 | 2010-03-01 | 2011-04-11 | m
2 | 2010-04-01 | 2010-06-14 | f
3 | 2010-03-01 | 2010-04-11 | m
4 | 2009-09-09 | 2009-10-10 | f
对于数据库中给出的所有年份,我想计算人的性别,即那一年在 startDate 和 endDate 之间的人。当 startDate 为 2010 和 endDate 2011 时,两者都应计算在内。
所以结果应该是这样的:
year | m | f | m+f
2009 | 0 | 1 | 1
2010 | 2 | 1 | 3
2011 | 1 | 0 | 1
我真的不知道如何实现对所有年份列表的查询。 目前我有这个:
select
sum(case tbl_people.Gender when 'm' then 1 else 0 end),
sum(case tbl_people.Gender when 'f' then 1 else 0 end),
count( tbl_people.Gender )
...
最好的问候
【问题讨论】:
标签: php mysql group-by between