有一张表people,四个字段
name sex birthday deathday 查出在2000-01-01 至2008-01-01 之间出生的人数和死亡的人数
要求:
1.要按性别分组统计
2.要求一条sql搞定
结果要像这样
出生 死亡
男 100 80
女 95 75 怎么写啊?????<在线等>
name sex birthday deathday 查出在2000-01-01 至2008-01-01 之间出生的人数和死亡的人数
要求:
1.要按性别分组统计
2.要求一条sql搞定
结果要像这样
出生 死亡
男 100 80
女 95 75 怎么写啊?????<在线等>
group by sex ,name,birthday , deathday
having deathday between 2000-01-01 and 2008-01-01
name sex birthday deathday
张三 男 2004-01-01
李四 女 1960-01-01 2006-01-01
group by sex ,name,birthday , deathday
having deathday birthday>=2000-01-01 and deathday<=2008-01-01
-------------------------------------------------------------------------------- --- ----------- -----------
a 男 1906-11-8 1976-11-8
b 男 1936-11-8 1998-11-8
c 女 1986-11-8
d 女 2001-11-8
e 女 1956-11-8 2002-11-2
f 男 1956-11-8 2006-3-2
g 女 1956-11-8 1999-11-8
h 男 1956-11-8 1996-11-8
i 女 2007-11-2 9 rows selectedSQL>
SQL> select sex 性别, sum(birthday) 出生人数, sum(deathday) 死亡人数
2 from (select sex,
3 case
4 when (birthday > to_date('2000-01-01', 'yyyy-mm-dd')) and
5 (birthday < to_date('2008-01-01', 'yyyy-mm-dd')) then
6 1
7 else
8 0
9 end birthday,
10 case
11 when (deathday > to_date('2000-01-01', 'yyyy-mm-dd')) and
12 (deathday < to_date('2008-01-01', 'yyyy-mm-dd')) then
13 1
14 else
15 0
16 end deathday
17 from test)
18 group by sex
19 ;性别 出生人数 死亡人数
---- ---------- ----------
男 0 1
女 2 1
BETWEEN 2000-01-01 and 2008-01-01 OR DEATHDAY BETWEEN 2000-01-01 and 2008-01-01 GROUP BY SEX