sql查詢語句之平均分、最高最低分及排序語句
前言
以mysql為例,匯總sql查詢最高分、最低分、平均分等sql語句,oracle語法類似,可自行修改以下sql語句
創(chuàng)建兩個(gè)數(shù)據(jù)庫表,一個(gè)學(xué)生表、一個(gè)考試成績表
DROP TABLE IF EXISTS `score`;
CREATE TABLE `score` (
`u_id` varchar(11) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '編號',
`object_no` varchar(11) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '課程編號',
`students_no` varchar(11) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '學(xué)號',
`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 '編號',
`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ù)


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

查詢各科成績最高分和最低分
select object_no as '課程編號',max(score) as '最高分',min(score) as '最低分' from score group by object_no

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

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

查詢平均成績
select students_no as '學(xué)生編號',avg(score) as '平均成績' from score group by students_no

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

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

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

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

計(jì)算每門課程的平均成績
select object_no as '課程編號',avg(score) as '平均成績' from score group by object_no

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

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

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

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

