⑴ 怎樣用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語句的後面,作為分組的依據;要麼就要被包含在聚合函數中。
⑵ SQL學生人數的計算欄位怎麼表示
SQL學生人數計算欄位的表示語句是:
select class_name,count(1) from table_name group by class;
其中class_name,count(1)為查出的班級名和對應的人數,table_name為學生表名稱,group by是將class分組。
⑶ sql查詢一個班級中總共有多少人以及男女分別多少人
create view StuClassView as
SELECT s.ID ,s.StuName ,s.StuAge ,s.StuAddress ,s.StuTel ,s.ClassId ,s.StuId,s.StuSex ,e.ClassName,e.ClassInfo,e.ClassFlag
FROM Classes as e left join Students as s on s.ClassId=e.ClassIdselect sc.ClassName as '班級名稱',count(sc.StuId) as '總人數' ,sum(case when sc.StuSex='男' then 1 else 0 end) as '男', sum(case when sc.StuSex='女' then 1 else 0 end) as '女' from StuClassView as sc group by sc.ClassName!
⑷ 利用sql統計「學生」表中學生的總人數
統計「學生」表中學生的總人數的sql語句是:
select count(*) from student;
其中select代表查詢,count(*)是統計行數量,student是學生表,使用上述語句可以統計學生表中的所有行記錄也就是學生的總人數。
(4)sql班級總人數擴展閱讀
常用sql語句介紹:
1、 查詢指定列
SQL>SELECT empmo, ename, mgr FROM emp;
SQL>SELECT DISTINCT mgr FROM emp; 只顯示結果不同的項
2、查詢指定行
SQL>SELECT * FROM emp WHERE job='CLERK';
3、使用算術表達式
SQL>SELECT ename, sal*13+nvl(comm,0) FROM emp;
nvl(comm,1)的意思是,如果comm中有值,則nvl(comm,1)=comm; comm中無值,則nvl(comm,1)=0。
SQL>SELECT ename, sal*13+nvl(comm,0) year_sal FROM emp; (year_sal為別名,可按別名排序)
SQL>SELECT * FROM emp WHERE hiredate>'01-1月-82';
⑸ SQL語言基礎(3)
count(欄位)
求 select 返回的記錄總數
查詢學生總數
select count(*) from studnets;
count可以結合distinct使用,去重後的統計
查詢一共有多少個班級 (把班級進首鉛行去重後進行統計)
select count(distinct class) from students;
查詢女學生的數量
select count(*) from studnets where sex ='女';
max(欄位名)
查詢指定欄位里的最大值
查詢students中的最大年齡
select max(age) from students;
查詢女學生最大年齡
select max(age) from studnets where sex '女';
查詢1班最大年齡
select max(age) from students where class = '1班';
min(欄位)
查詢指定欄位里的最小值
查詢學生中最小年齡
select min(age) from students;
查詢學生中女生最小年齡
select min(age) from studnets where sex ='女';
查詢學生中1班最小年齡
select min(age) from students where class ='1班';
sum(欄位名)
指定欄位的值求和
查詢學生的年齡總和
select sum(age) from students;
查詢女學生的年齡總和
select sum(age) from students where sex = '女';
查詢1班學生的年齡總和
select sum(age) from students where class ='1班';
age(欄位)表示求此者耐好欄位的平均值
查詢班級中的平均年齡
select avg(age) from studnets;
查詢班級中女生的平均年齡
select avg(age) from students where sex = '女';
查詢班級為1班的平均年齡
select avg(age) from students where class ='1班';
avg的欄位中如果有null,null不做為分母計算平均值 (如果所查詢的3個值,其中一個值為null,而只能算做兩個值求平均值)
擴展練習
查詢所有學生的最大年齡,最小年齡,平均年齡;
select max(age),min(age),avg(age) from students;
查詢1班有多少個學生
select count(*) from sutdnets where class = '1班';
查詢3班中年齡小於30歲的同學有多少
select count(*) from students where class ='3班' and age < '30';
group by 欄位名
select 聚合函數 from 表名 where 表名 group by 欄位
group by 就是畝襪配合聚合函數使用的
分別查詢男女同學的數量
select sex,count(*) from students group by sex;
查詢各個年齡段的學生數量
select age,count(*) from students group age;
查詢1班男生、女生的數量
select sex,count(*) from where class ='1班' students group by sex;
用數據分組的方法,統計各個班級學生總數,平均年齡,最大年齡,最小年齡
select class count(*),avg(age),max(age),min(age) from students group by class;
統計各個班級的學生總數,平均年齡、最大年齡、最小年齡、但不統計3班的學生,統計結果按班級從小到大排序
select class count(*),avg(age),max(age),min(age) from students where class !='3班' group by class order by class desc;
分組以後篩選
用where查詢男生總數
select count(*) from studnets where sex ='男';
用having查詢男生總數
select count(*) from students group by sex having sex ='男';
求班級人數大於3人的班級
select class, count(*) from students group by class having count(*)> 3;
Having與where篩選的區別
where是對標的原始數據進行篩選
having是對group by之後已經分過組的數據進行篩選
having可以使用聚合函數 where不能用聚合函數
查詢班級總人數大於2人的班級名稱以及班級對應的總人數
select class,count(*) from students group by class having count(*) > 2;
查詢平均年齡大於30歲的班級名稱和班級總人數
select class,count(*) from students group by class having ave(age) > 30;
select * from 表名 where 條件 group by 欄位 order by 欄位 limit start,count
語法:limit開始行,獲取行數
limit總是出現在select語句的最後
start代表開始行號,行號從0開始編號
count代表要顯示多少行
省略start默認從0開始,從第一行開始
查詢前3行學生記錄
select * from students limit 0,3;
查詢從第4條記錄開始的三條記錄
select * from studnets limit 3,3;
當有where或者group by或者order by,limit總是出現在最後
查詢年齡最大同學的名字
select name from students order by age desc limt 0,1;
查詢年齡最小女同學的信息
select * from students where sex = 女 order by age limit 0,1;
當一張表記錄特別多的時候,就需要用到分頁顯示
已知:每頁顯示m條數據,求查詢第n頁數據
公式 limit (n-1)*m,m
每頁顯示4條記錄,第3頁的結果
select * from students limit 8,4;
每頁顯示4條記錄,第2頁的結果
select * form students limit 4,4;
已知每頁也數,求一張表需要幾頁顯示
♦求總頁數
♦總頁數/每頁的記錄數
♦如果結果是整數,那麼就是總頁數,如果結果有小數,那麼就在結果的整數上+1
每頁顯示5條記錄,分別多條select顯示每頁的記錄
第一頁
select * from limit 5;
第二頁 套用公式 (n-1)*m,m m條數 n頁數
select * from limit 5,5;
第三頁
select * from limit 10,5;
第四頁
select * from limit 15,5;
⑹ Sql創建一個存儲過程,根據指定的班級,得到該班級的人數的語句怎麼寫
參考如下:
delimiter$$
DropPROCEDUREIFEXISTSgetCount;
CREATEPROCEDUREgetCount(INv_classNameVARCHAR(30),OUTv_countINTEGER)
BEGIN
declareicountinteger;
selectcount(*)intoicountfrom班級表wherebanji=v_className
END$$
delimiter;
⑺ 資料庫表名: 學生信息 求一 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筆資料。
⑻ SQL語句統計班級人數,班級表+學生表
SELECT 班級名稱,COUNT(學號) 人數
FROM 班級表 LEFT JOIN 學生表 ON 班級表.班級編號=學生表.班級
GROUP BY 班級名稱
⑼ SQL 查詢統計每個班的學生人數
select sClass 班級,count(*) 班級學生總人數。
sum(case when sGender=0 then 1 else 0 end) 該班級女生人數。
sum(case when sGender=0 then 1 else 0 end)*1.0/count(*) 該班級女生所佔比例。
sum(case when sGender=1 then 1 else 0 end) 該班級男生人數。
sum(case when sGender=1 then 1 else 0 end)*1.0 /count(*) 該班級男生所佔比例。
from student GROUP BY sClass ORDER BY sClass asc