sql查詢(xún)語(yǔ)句之平均分、最高最低分及排序語(yǔ)句
前言
以mysql為例,匯總sql查詢(xún)最高分、最低分、平均分等sql語(yǔ)句,oracle語(yǔ)法類(lèi)似,可自行修改以下sql語(yǔ)句
創(chuàng)建兩個(gè)數(shù)據(jù)庫(kù)表,一個(gè)學(xué)生表、一個(gè)考試成績(jī)表
DROP TABLE IF EXISTS `score`;
CREATE TABLE `score` (
`u_id` varchar(11) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '編號(hào)',
`object_no` varchar(11) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '課程編號(hào)',
`students_no` varchar(11) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '學(xué)號(hào)',
`score` int(11) NULL DEFAULT NULL COMMENT '分?jǐn)?shù)'
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;
INSERT INTO `score` VALUES ('1', '100', 's100', 80);
INSERT INTO `score` VALUES ('2', '100', 's200', 59);
INSERT INTO `score` VALUES ('3', '100', 's300', 79);
INSERT INTO `score` VALUES ('4', '200', 's100', 54);
INSERT INTO `score` VALUES ('5', '200', 's200', 96);
INSERT INTO `score` VALUES ('6', '200', 's300', 74);
INSERT INTO `score` VALUES ('7', '300', 's100', 65);
INSERT INTO `score` VALUES ('8', '300', 's200', 80);
INSERT INTO `score` VALUES ('9', '200', 's400', 62);
INSERT INTO `score` VALUES ('10', '300', 's400', 56);
INSERT INTO `score` VALUES ('11', '100', 's400', 70);
SET FOREIGN_KEY_CHECKS = 1;
DROP TABLE IF EXISTS `students`;
CREATE TABLE `students` (
`students_no` varchar(12) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '編號(hào)',
`students_name` varchar(12) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '姓名',
`sex` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '性別',
PRIMARY KEY (`students_no`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;
INSERT INTO `students` VALUES ('s100', '張三', '1');
INSERT INTO `students` VALUES ('s200', '李四', '2');
INSERT INTO `students` VALUES ('s300', '張三', '1');
INSERT INTO `students` VALUES ('s400', '王五', '1');
SET FOREIGN_KEY_CHECKS = 1;
數(shù)據(jù)表數(shù)據(jù)


查詢(xún)各課程的考試學(xué)生人數(shù)
select object_no as '課程編號(hào)', count(DISTINCT students_no) '考試人數(shù)' from score group by object_no

查詢(xún)各科成績(jī)最高分和最低分
select object_no as '課程編號(hào)',max(score) as '最高分',min(score) as '最低分' from score group by object_no

查詢(xún)每門(mén)課程被選修的學(xué)生數(shù)
select object_no as '課程編號(hào)', count(DISTINCT students_no) as '學(xué)生編號(hào)' from score group by object_no

查詢(xún)男生、女生人數(shù)
select sex '性別',count(DISTINCT students_no) '數(shù)量' from students group by sex

查詢(xún)平均成績(jī)
select students_no as '學(xué)生編號(hào)',avg(score) as '平均成績(jī)' from score group by students_no

查詢(xún)平均成績(jī)大于70分學(xué)生的學(xué)號(hào)和平均成績(jī)
select students_no as '學(xué)生編號(hào)',avg(score) as '平均成績(jī)' from score group by students_no HAVING avg(score)>70

查詢(xún)學(xué)生考試參與考試課程數(shù)量
select students_no as '學(xué)生編號(hào)',count(object_no) as '課程編號(hào)' from score group by students_no

查詢(xún)考試兩門(mén)以上課程的學(xué)生學(xué)號(hào)
select students_no as '學(xué)生編號(hào)',count(object_no) as '課程編號(hào)' from score group by students_no HAVING count( object_no)>2

查詢(xún)同名學(xué)生名單并統(tǒng)計(jì)同名人數(shù)
select students_name as '學(xué)生名稱(chēng)',count(students_name) as '同名數(shù)量' from students group by students_name HAVING count(students_name)>1

計(jì)算每門(mén)課程的平均成績(jī)
select object_no as '課程編號(hào)',avg(score) as '平均成績(jī)' from score group by object_no

計(jì)算每門(mén)課程的平均成績(jī)并且平均成績(jī)大于等于70分
select object_no as '課程編號(hào)',avg(score) as '平均成績(jī)' from score group by object_no HAVING avg(score)>70

查詢(xún)不及格的課程并按課程號(hào)從大到小排列
select object_no as '課程編號(hào)',students_no '學(xué)生編號(hào)',score '分?jǐn)?shù)' from score where score<60 order by object_no desc

查詢(xún)每門(mén)課程的平均成績(jī),結(jié)果按平均成績(jī)降序排列,如果平均成績(jī)相同時(shí),按課程號(hào)升序排列
select object_no as '課程編號(hào)',avg(score) as '平均成績(jī)' from score group by object_no order by avg(score) desc,object_no asc

總結(jié)
到此這篇關(guān)于sql查詢(xún)語(yǔ)句之平均分、最高最低分及排序語(yǔ)句的文章就介紹到這了,更多相關(guān)mysql平均分查詢(xún)語(yǔ)句內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MySQL學(xué)習(xí)第二天 安裝和配置mysql winx64
MySQL學(xué)習(xí)第二天,主要為大家詳細(xì)介紹了在Windows 64位操作系統(tǒng)下安裝和配置MySQL的具體步驟,整理一份mysql winx64安裝配置方法教程,感興趣的小伙伴們可以參考一下2016-05-05
MySQL創(chuàng)建用戶(hù)與授權(quán)方法
MySQL中創(chuàng)建用戶(hù)與授權(quán)的實(shí)現(xiàn)方法,對(duì)于剛開(kāi)始接觸mysql的朋友可以參考下2012-11-11
Mysql關(guān)于數(shù)據(jù)庫(kù)是否應(yīng)該使用外鍵約束詳解說(shuō)明
MySQL 外鍵約束(FOREIGN KEY)是表的一個(gè)特殊字段,經(jīng)常與主鍵約束一起使用。對(duì)于兩個(gè)具有關(guān)聯(lián)關(guān)系的表而言,相關(guān)聯(lián)字段中主鍵所在的表就是主表,外鍵所在的表就是從表。外鍵用來(lái)建立主表與從表的關(guān)聯(lián)關(guān)系,為兩個(gè)表的數(shù)據(jù)建立連接,約束兩個(gè)表中數(shù)據(jù)的一致性和完整性2021-10-10
Mysql中LEFT JOIN和JOIN查詢(xún)區(qū)別及原理詳解
這篇文章主要介紹了Mysql中LEFT JOIN和JOIN查詢(xún)區(qū)別及原理詳解,Nested Loop Join 實(shí)際上就是通過(guò)驅(qū)動(dòng)表的結(jié)果集作為循環(huán)基礎(chǔ)數(shù)據(jù),然后一條一條的通過(guò)該結(jié)果集中的數(shù)據(jù)作為過(guò)濾條件到下一個(gè)表中查詢(xún)數(shù)據(jù),然后合并結(jié)果,需要的朋友可以參考下2023-08-08
MySql日期查詢(xún)數(shù)據(jù)的實(shí)現(xiàn)
本文主要介紹了MySql日期查詢(xún)數(shù)據(jù)的實(shí)現(xiàn),詳細(xì)的介紹了幾種日期函數(shù)的具體使用,及其具體某天的查詢(xún),具有一定的參考價(jià)值,感興趣的可以了解一下2023-01-01
mysql使用教程之分區(qū)表的使用方法(刪除分區(qū)表)
mysql分區(qū)表使用方法,新增分區(qū)、刪除分區(qū)、分區(qū)的合并、分區(qū)的拆分等使用方法2013-12-12
MySQL 創(chuàng)建索引(Create Index)的方法和語(yǔ)法結(jié)構(gòu)及例子
MySQL 創(chuàng)建索引(Create Index)的方法和語(yǔ)法結(jié)構(gòu)及例子2009-07-07
IP處理函數(shù)inet_aton()和inet_ntoa()使用說(shuō)明
IP處理函數(shù)inet_aton()和inet_ntoa()使用說(shuō)明,需要的朋友可以參考下2012-03-03
MySQL Daemon failed to start錯(cuò)誤解決辦法
這篇文章主要介紹了MySQL Daemon failed to start錯(cuò)誤解決辦法的相關(guān)資料,需要的朋友可以參考下2017-01-01

