用sql语句实现年龄分段统计

Posted 疯子加天才

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用sql语句实现年龄分段统计相关的知识,希望对你有一定的参考价值。

SELECT
    CASE
WHEN (age >= 10 AND age <= 20) THEN
    ‘10-20‘
WHEN (age >= 21 AND age <= 30) THEN
    ‘21-30‘
ELSE
    ‘30-‘
END ‘eag_layer‘,
 count(*) emps
FROM
    address_book
GROUP BY
    CASE
WHEN (age >= 10 AND age <= 20) THEN
    ‘10-20‘
WHEN (age >= 21 AND age <= 30) THEN
    ‘21-30‘
ELSE
    ‘30-‘
END
ORDER BY
    1;

 

SELECT ‘10-20‘ 年龄段, COUNT(*) 人数
FROM [Table]
WHERE [年龄] BETWEEN 10 AND 20
UNION ALL
SELECT ‘21-30‘ 年龄段, COUNT(*) 人数
FROM [Table]
WHERE [年龄] BETWEEN 21 AND 30
UNION ALL
SELECT ‘31‘ 年龄段, COUNT(*) 人数
FROM [Table]
WHERE [年龄] > 30 

 

select case when [年龄] BETWEEN 10 AND 20  then ‘10-20‘
            when [年龄] BETWEEN 20 AND 30  then ‘20-30‘
            when [年龄] > 30 then ‘30以上‘ end as ‘年龄段‘,
       count(*) as ‘人数‘ FROM [Table] 

 

先将年龄除10取整

select floor(年龄/10) as age from 表
  • 1

再根据年龄整数分组统计

select age ,count(age) from
(
select floor(年龄/10) as age from 表
)
group by age

 

这样基本效果就出来了,达到楼主的要求就要加如函数计算了

sql语法

select convert(varchar,age*10)+‘--‘+convert(varchar,(age+1)*10) ,count(age) from
(
select floor(年龄/10) as age from 表
)
group by age

 

oracle语法

select age*10 || ‘--‘|| (age+1)*10 ,count(age) from
(
select floor(年龄/10) as age from 表
)
group by age

以上是关于用sql语句实现年龄分段统计的主要内容,如果未能解决你的问题,请参考以下文章

SQL语句按年龄分组,统计各个年龄的人数

如何写在身份证号码中提取年龄的sql语句

如何写在身份证号码中提取年龄的sql语句

求个sqlserver查询语句

怎样用SQL语句查询以20%来分段查询数据,如查询该表中数据数量20%到40%的数据怎查来。

python年龄数据进行分段整合的方法