当前位置:首页 » 编程语言 » sql获取学生人数最多的班级
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql获取学生人数最多的班级

发布时间: 2023-07-19 15:19:04

A. “sql语言查询课程表中,哪个学院的课学生最多”

这个问题可以通过课程分组计数来获取每个组的学生人头数,然后取人头数最多的课程,最后通过课程关联找出学院名。

具体的sql语句要有数据结构才能给出,下面提供一个例子供参考:

假设数据结构是

学院表(id,学院id unique,学院名)
课程表(id,课程id unique,学院id,课程名)
选课表(id,学生id,课程id)

编写sql语句,选出选修学生最多的课程名称,并列出该课程所归属的学院名以及选修人数。

select a.学院名,b.课程名,c.人数
from 学院表 a,选课表 b,
(select 课程id,count(1) as 人数
from 选课表 group by 课程id
having count(1)=(select top 1
count(1) from 选课表 group by
课程id order by count(1) desc)) c
where a.学院id=b.学院id and
b.课程id=c.课程id;

B. ,在班级表中查询班级人数最多的班级名称和人数. 2,查询姓王的学生的姓名和所在班级. SQL做 大神求解

班级表:
ID(主键自增) NameID(学号) Name(枝缓姓名) Class(班级名称)
Select Class,Count(ID) Qty From 班级表 Group by Class
上面的Qty就消搭喊是人数,Class就拿野是班级名字。
Select Name,Class From 班级表 Where Name like '王%'

C. 关于SQL查询,有学生和班级两张表。查询班级人数大于50的班级的所有信息

SELECT
班级.ID
FROM
班级,
学生
WHERE
班迅塌级.ID
=
学生.所属班级ID
GROUP
BY
班级游岩.ID
HAVING
COUNT(学生.ID)
>
50
上面的SQL,
只获取班级人数大于50的班级的
ID
如果要班级的所有信息
SELECT
*
FROM
班级
WHERE
班级.ID
IN
(
SELECT
班级.ID
FROM
班级,
学生
WHERE
班级.ID
=
学生.所属班级ID
GROUP
BY
班神昌御级.ID
HAVING
COUNT(学生.ID)
>
50
)

D. 在SQL 中查找男生比女生人数多的班级名称,及男女生人数

--怎么也得给个表截图吧,只好自己定义了。。。

--创建表stu
create table stu
(s_name varchar2(20)
,s_class varchar2(20)
,s_sex varchar2(10)
)
--导入6组数据
insert into stu values('张三','计算机1班','男');
insert into stu values('李四','计算机1班','男');
insert into stu values('王五','搜册计算机1班','女');
insert into stu values('赵六','旦盯计算机2班','女');
insert into stu values('刘七','计算机2班','男');
insert into stu values('陈八','计算机3班','男');

/*先通过子查询获取男生比女生人数多的班级,然后在表stu中按班级分组,
最后通过sum和decode计算出满足条件的班级中男生、女生人数*/
--oracle 中decode(s_sex,'男',1,0)含义:if s_sex='男' return 1 else return 0
select s_class,sum(decode(s_sex,'男',1,0)) 男,sum(decode(s_sex,'女',1,0)) 女
from stu
where s_class in
--该子查询取得男生比女生人数多的班世迟宏级
(select s_class
from stu
group by s_class
having sum(decode(s_sex,'男',1,0)) > sum(decode(s_sex,'女',1,0)))
group by s_class

E.  急求解:SQL:取得班级人数在全校平均班级人数以上的班级以及人数

select 班级,count(学号) as 班级人数
from 学生表
group by 班级
having count(学号)>(select count(学号) from stu)/count(班级)

SUM()是 求和的、学号如果是1、2、3那算出的人数是六人、而实际只有三人
这里聚合函数按班级分组、所以不用distinct 、
(select count(学号) from stu)/count(班级)
全校所有学生/班级 算出平均班级人数

F. Sql创建一个存储过程,根据指定的班级,得到该班级的人数的语句怎么写

参考如下:

delimiter$$
DropPROCEDUREIFEXISTSgetCount;
CREATEPROCEDUREgetCount(INv_classNameVARCHAR(30),OUTv_countINTEGER)
BEGIN
declareicountinteger;
selectcount(*)intoicountfrom班级表wherebanji=v_className
END$$
delimiter;

G. 急求:SQL语言检索出那些男生的人数多于20个的班级,结果包括班级和男生人数,谁帮我一下我非常感谢

select 班级,count(*) as 男生人数
from 学生表
where 性别='男'
group by 班级
having count(*)>20

H. 怎样用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语句的后面,作为分组的依据;要么就要被包含在聚合函数中。

I. 数据库表名: 学生信息 求一 sql语句 取出所有班级的人数

使用group分组汇总的方式。
假定如下:
学生信息表--student,包含字段班级ID(CID),学生ID(SID)等,
班级表--class,包含班级ID(ID),班级名称(CNAME)等,
简单SQL如下:
select C.CNAME,count(*) from student s,class c where s.CID=s.ID group by C.CNAME;
得到结果是班级名称,以及该班级下所有学生人数,有N个班级就有N笔资料。