❶ 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学生人数的计算字段怎么表示
SQL学生人数计算字段的表示语句是:
select class_name,count(1) from table_name group by class;
其中class_name,count(1)为查出的班级名和对应的人数,table_name为学生表名称,group by是将class分组。
❸ SQL语句 求各系、各班级的人数和平均年龄,表为Student,分组应该怎么分
select 系名,count(*) as 系人数, avg(年龄) as 系平均年龄
from Student group by 系名
select 班级名,count(*) as 班级人数, avg(年龄) as 班级平均年龄
from Student group by 班级名
如果系名和班级名字段类型一样,可以用union all 把两个表连起来。如果不一样,可以把班级名转换成和系名字段类型一样,再用union all连接起来。
❹ 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语句表示:查询每个班级的学生人数
查询每个班级的学生人数的sql语句是:
select class_name,count(1) from table_name group by class;
其中class_name,count(1)为查出的班级名和对应的人数,table_name为学生表名称,group by是将class分组。
注意点:在select指定的字段要么就要包含在Group By语句的后面,作为分组的依据;要么就要被包含在聚合函数中。
❻ MY SQL分组查询每个地方每个状态的学生人数
这个用case when语句即可实现上述功能,经过测试已全部通过
select location,count(case when status=1 then status end)as '1',count(case when status=2 then status end)as '2',count(case when status=3 then status end)as '3',count(case when status=4 then status end)as '4' from student group by location