关于聚合函数的练习

Posted 小飛

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于聚合函数的练习相关的知识,希望对你有一定的参考价值。

--练习:
--通过代码操作:创建一个数据库,里面新建一个学生信息表,
--内容包括:学号,姓名,性别,体重,年龄和语数外三门课的分数,所在班级
--插入20条数据
--1.查姓王的同学的信息
--2.分别查每门课的最高分和最低分
--3.查男同学的所有名字,一列
--4.查每个班每门课程分别得最高分最低分
create database paopao --创建一个名为paopao的数据库
go
use paopao
go
create table xuesheng--创建一个表,注意每一步后面加逗号,最后不需要
(
  xuehao int,--学号属于整数类型,用int
  name char(10),--名字属于相同的字符串类型,用char
  xingbie char(10),--性别同上
  tizhong varchar(10),--体重用的数字加字母属于不同的字符串类型用varchar
  nianling varchar(10),--年龄用的数字加汉字,同样用varchar
  yuwen decimal(10,2),--科目成绩有可能是整数也有可能是小数,用decimal,括号里第一个是数字的长度范围,第二个是保留小数点后面两位
  shuxue decimal(10,2),
  yingyu decimal(10,2),
  banji varchar(10)--班级是字符串类型,用char或者varchar都可以,varchar范围更大一些,这里用的varchar
)
go
--向表格中添加信息,注意字符串类型要写在单引号中
insert into xuesheng values(1,赵子龙,,90kg,20岁,90,99,85,一班) 
insert into xuesheng values(2,钱坤,,80kg,20岁,92,95,87,一班)
insert into xuesheng values(3,孙悟饭,,70kg,20岁,99,98,80,一班)
insert into xuesheng values(4,李元霸,,60kg,19岁,88,89,95,一班)
insert into xuesheng values(5,周杰棍,,70kg,21岁,66,67,68,一班)
insert into xuesheng values(6,吴老二,,80kg,20岁,76,77,78,一班)
insert into xuesheng values(7,郑克爽,,70kg,20岁,86,87,88,一班)
insert into xuesheng values(8,王语嫣,,50kg,20岁,96,99,98,一班)
insert into xuesheng values(9,冯锡范,,70kg,20岁,56,57,58,一班)
insert into xuesheng values(10,陈圆圆,,50kg,20岁,97,99,95,一班)
insert into xuesheng values(11,楚留香,,80kg,21岁,91,99,85,二班)
insert into xuesheng values(12,卫青,,80kg,20岁,90,93,83,二班)
insert into xuesheng values(13,蒋英羽,,60kg,19岁,92,96,75,二班)
insert into xuesheng values(14,沈碧君,,50kg,20岁,91,99,90,二班)
insert into xuesheng values(15,韩庚,,70kg,20岁,92,98,82,二班)
insert into xuesheng values(16,杨白劳,,60kg,20岁,45,55,56,二班)
insert into xuesheng values(17,朱刚鬣,,100kg,20岁,90,95,82,二班)
insert into xuesheng values(18,秦祥林,,70kg,20岁,97,98,84,二班)
insert into xuesheng values(19,尤俊达,,80kg,21岁,67,69,66,二班)
insert into xuesheng values(20,许士林,,60kg,20岁,99,99,97,二班)

--查看这个表的全部
select*from xuesheng
--1.查姓王的同学的信息
select*from xuesheng where name like 王%
--2.分别查每门课的最高分和最低分
--语文最高分
select MAX(yuwen)from xuesheng 
--语文最低分
select Min(yuwen)from xuesheng
--数学最高分
select Max(shuxue)from xuesheng
--数学最低分
select Min(shuxue)from xuesheng
--英语最高分
select Max(yingyu)from xuesheng
--英语最低分
select MIN(yingyu)from xuesheng


--3.查男同学的所有名字,一列
select name from xuesheng where xingbie=

--4.查每个班每门课程分别得最高分最低分


--一班语文成绩的最高分
select MAX(yuwen)from xuesheng where banji=一班
-- 一班语文成绩最低分
select Min(yuwen)from xuesheng where banji=一班
--一班数学成绩的最高分
select MAX(shuxue)from xuesheng where banji=一班
-- 一班数学成绩最低分
select Min(shuxue)from xuesheng where banji=一班
--一班英语成绩的最高分
select MAX(yingyu)from xuesheng where banji=一班
-- 一班英语成绩最低分
select Min(yingyu)from xuesheng where banji=一班


--二班语文成绩的最高分
select MAX(yuwen)from xuesheng where banji=二班
-- 二班语文成绩最低分
select Min(yuwen)from xuesheng where banji=二班
--二班数学成绩的最高分
select MAX(shuxue)from xuesheng where banji=二班
-- 二班数学成绩最低分
select Min(shuxue)from xuesheng where banji=二班
--二班英语成绩的最高分
select MAX(yingyu)from xuesheng where banji=二班
-- 二班英语成绩最低分
select Min(yingyu)from xuesheng where banji=二班

--5.查询一班语文不及格的同学信息
select * from xuesheng where yuwen<60 and banji=一班

--6.查询二班英语不及格的人数
select COUNT(*)as 人数 from xuesheng where yingyu<60 and banji=二班

--7.查询一班数学的平均分
select AVG(shuxue)as 平均分 from xuesheng where banji=一班

--8.查询二班英语总分
select SUM(yingyu)as 总分 from xuesheng where banji=二班

--9.查询所有语文成绩在60到80分的学生的信息
select*from xuesheng where yuwen between 60 and 80--between and 两者之间,用在最后面

--10.根据班级将学生分组
select banji from xuesheng  group  by banji--分组用group by,先在表中查询分组条件,再给这个条件这一列中的数据分组
--11,分组之后看看每个班级数学成绩总和与每个班的人数
select banji,SUM(shuxue)as 数总,COUNT(*)as 人数 from xuesheng group by banji

 

以上是关于关于聚合函数的练习的主要内容,如果未能解决你的问题,请参考以下文章

几个关于js数组方法reduce的经典片段

数据库查询,关于聚合函数 max()的用法。

关于Sql中的聚合函数的问题

Python学习25:关于函数更多的练习

关于聚合函数的问题

数据库开发基础-教案-4-聚合函数group by分组的使用方法数学函数