当前位置:首页 » 编程语言 » 统计各年龄段的人数sql
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

统计各年龄段的人数sql

发布时间: 2022-08-16 15:36:07

sql语句 怎么统计各年龄段人数分布情况 年龄为user_age,表为worker,年龄已知为数字类型

selectuser_age年龄,count(user_age)人数,cast(cast((count(user_age)/((selectcount(*)fromworker)*1.0)*100)asdecimal(9,2))asvarchar)+'%'所占比例fromworkergroupbyuser_age


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

先将年龄除10取整
select floor(年龄/10) as age from 表

再根据年龄整数分组统计
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出生年月统计年龄段

SELECT
SUM(CASEWHENyears>=20ANDyears<30THEN1ELSE0END)AS'20-30岁',
SUM(CASEWHENyears>=30ANDyears<40THEN1ELSE0END)AS'30-40岁',
SUM(CASEWHENyears>=40ANDyears<50THEN1ELSE0END)AS'40-50岁'FROM
(SELECTDATEDIFF(YEAR,Birthday,GETDATE())ASyearsFROMdbo.c_driver)ABC

⑷ sql语句 根据年纪阶段统计人数 根据性别分组

select性别,
casewhen年龄between20and29then1else0end[20-29],
casewhen年龄between30and39then1else0end[30-39],
casewhen年龄between40and49then1else0end[40-49]
from表名
groupby性别

以上使用于大部分数据库

只是在起别名上,只适用于sqlserver

oracle的话起别名

select性别,
casewhen年龄between20and29then1else0end"20-29",
casewhen年龄between30and39then1else0end"30-39",
casewhen年龄between40and49then1else0end"40-49"
from表名
groupby性别

mysql的话

select性别,
casewhen年龄between20and29then1else0end`20-29,
casewhen年龄between30and39then1else0end`30-39`,
casewhen年龄between40and49then1else0end`40-49
from表名
groupby性别

⑸ 利用SQL语句统计出各年龄段人数

select '25-30岁' as 年龄段 count(*) as 人数 from tb where year(getdate())-year(birthday)>=25 and year(getdate())-year(birthday)<30
union all
select '30-35岁' as 年龄段 count(*) as 人数 from tb where year(getdate())-year(birthday)>=30 and year(getdate())-year(birthday)<35
union all
select '35-40岁' as 年龄段 count(*) as 人数 from tb where year(getdate())-year(birthday)>=35 and year(getdate())-year(birthday)<40

⑹ 如何写一个sql语句能根据出生日期按年龄段统计人数

你需要使用两种SQL语句:

  • COUNT( )

  • BETWEEN

然后你的资料表要有纪录年龄,或是至少要有出生日期。

大概的语法如下:

SELECT COUNT( 栏位名 ) FROM 资料表 WHERE 年龄 BETWEEN '40' and '50'

栏位名:不能是可以允许NULL值的栏位,有NULL的资料不会计算在内。

资料表:你要抓资料的那个资料表。

BETWEEN '40' and '50':意思是介于40~50岁。

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

先确保你的出生年月是datetime的日期类型,语法如下。

select case when datediff(year,出生年月,getdate()) <= 20 then '20岁年龄段'
when datediff(year,出生年月,getdate()) between 21 and 25 then '21-25年龄段'
else '25以上年龄段' end as 年龄段,count(1) as 年龄段人数
from 表
group by
case when datediff(year,出生年月,getdate()) <= 20 then '20岁年龄段'
when datediff(year,出生年月,getdate()) between 21 and 25 then '21-25年龄段'
else '25以上年龄段' end

也可以试试

select sum(case when datediff(year,出生年月,getdate()) <= 20 then 1 else 0 end) '20岁年龄段',
sum(case when datediff(year,出生年月,getdate()) between 21 and 25 then 1 else 0 end) '21-25年龄段',
sum(case when datediff(year,出生年月,getdate()) > 25 then 1 else 0 end) '25以上年龄段'
from 表

⑻ SQL语句 按年龄段分组统计人数问题

先确保你的出生年月是datetime的日期类型,语法如下。
select
case
when
datediff(year,出生年月,getdate())
<=
20
then
'20岁年龄段'
when
datediff(year,出生年月,getdate())
between
21
and
25
then
'21-25年龄段'
else
'25以上年龄段'
end
as
年龄段,count(1)
as
年龄段人数
from

group
by
case
when
datediff(year,出生年月,getdate())
<=
20
then
'20岁年龄段'
when
datediff(year,出生年月,getdate())
between
21
and
25
then
'21-25年龄段'
else
'25以上年龄段'
end
也可以试试
select
sum(case
when
datediff(year,出生年月,getdate())
<=
20
then
1
else
0
end)
'20岁年龄段',
sum(case
when
datediff(year,出生年月,getdate())
between
21
and
25
then
1
else
0
end)
'21-25年龄段',
sum(case
when
datediff(year,出生年月,getdate())
>
25
then
1
else
0
end)
'25以上年龄段'
from

⑼ 统计出男生人数,平均年龄,女生人数,平均年龄.sql语句

1、SQL语句:SQL即结构化查询语言(Structured
Query
Language),是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。SQL语句无论是种类还是数量都是繁多的,很多语句也是经常要用到的,SQL查询语句就是一个典型的例子,无论是高级查询还是低级查询,SQL查询语句的需求是最频繁的。

2、SQL语句包括(以VFP6为例):

  • create语句:创建表

  • alter语句:修改表结构

  • incert语句:在表中插入记录

  • update语句:更新表中记录

  • delete语句:删除表中记录

  • drop语句:删除表

  • select语句:查询记录

3、本题目要求使用select语句,其语法结构为(以VFP6为例):

SELECT[ALL|DISTINCT|DISTINCTROW|TOP]
{*|talbe.*|[table.]field1[AS alias1][,[table.]field2[AS alias2][,…]]}
FROM tableexpression[,…][IN externaldatabase]
[WHERE…]
[GROUP BY…]
[HAVING…]
[ORDER BY…]

4、本题目需要有一个表:【学生表】(含性别、年龄字段)

5、结论,所需SQL语句为:【select 性别, count(*) as 人数, avg(年龄)as 平均年龄 from 学生表 group by 性别】(见下图,在VFP6中验证,图片可点击放大)。

⑽ SQL统计年龄段

例如:
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]