我想按年龄计算人数

时间:2019-01-08 08:19:18

标签: sql oracle group-by

我有一个表,该表有很多列,最多有100万条记录。 我想按年龄和服务名计算人数。

我的表格列如下:

birthdate     person_id       service_name
-----------------------------------------------
1989/12/02    123456789       sql_server
1984/11/22    548321697       developer_server
1983/12/02    685221698       texas_server
1989/05/02    845132023       network_server
1986/05/15    210254638       sad_server
1990/03/22    853612045       happy_server
     .                 .                  .
     .                 .                  .
     .                 .                  .
     .                 .                  .
     .                 .                  .

1 个答案:

答案 0 :(得分:1)

您希望年龄有多精确?出生年?整年?更精确的东西吗? 您的生日专栏是Oracle DATE类型吗?

假设它是DATE,那么您需要这样的内容才能获得完整的年份:

SELECT EXTRACT( YEAR FROM ( SYSDATE - birthdate ) YEAR TO MONTH ) AS age
     , service_name
     , COUNT( 1 ) AS person_count
    FROM my_table
GROUP BY EXTRACT( YEAR FROM ( SYSDATE - birthdate ) YEAR TO MONTH )
       , service_name;