我有一个表,该表有很多列,最多有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
. . .
. . .
. . .
. . .
. . .
答案 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;