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筆資料。