文章详情

短信预约信息系统项目管理师 报名、考试、查分时间动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

数据库的统计汇总分组合并

2021-02-15 10:51

关注

数据库的统计汇总分组合并

对表数据进行检索时,经常需要对结果进行汇总或计算,例如,在学生成绩数据库中求某门课程的总成绩,统计个分数段的人数等。

1.统计函数

统计函数用于计算表中的数据,返回单个计算结果

SUM和AVG函数:分别用于求表达式中所有值项的总和与平均值

--求选修100012课程的学生的平均成绩。
select
avg(result_number)
from
school_result
where result_course="100012";

MAX和MIN函数:用于求表达式中所有值得最大值和最小值

--求选修100012课程的学生的最高分和最低分。
select
max(result_number)
from
school_result
where result_course="100012";

COUNT函数:用于统计组中满足条件的行数或总行数

--求学生的总人数。
select
count(*)
from
school_students
;
--统计数据库技术及应用课程成绩在85分以上的人数。
 select
count(*)
from
school_result
where
RESULT_NUMBER>=85
and result_course=(
                      select course_id
                      from
                      SCHOOL_COURSE
                      where
                      course_name="数据库技术及应用"
                   )
                   ;

 

2.分组

GROUP BY子句用于对表或视图中的数据按字段分组,格式为:

[ GROUP BY [ ALL ] group_by_expression [,…n]

--将数据库成绩表中各专业编号输出。
select
result_course
from
school_result
group by result_course;

 

3.分组筛选

使用group by子句和统计函数对数据进行分组后,还可以使用having子句对分组数据进行进一步的筛选

having子句的查询条件与where子句类似,不同的是having子句可以使用统计函数,而where子句不可以使用统计函数

--查找数据库中平均成绩在85分以上的学生的学号和平均成绩。
 select
avg(result_number),
result_stu
from
school_result
group by result_stu
having avg(result_number)>=65;

在select语句中,当where,group by与having子句都被使用时,要注意他们的作用和执行顺序。where用于筛选由from指定的数据对象;group by用于对where的结果进行分组;having则是对group by 子句以后的分组数据进行过滤。

--查找选修课程超过2门且成绩都在80分以上的学生的学号。
select
result_stu
from
school_result
where RESULT_NUMBER>=80
group by result_stu
having count(result_stu)>=2;

4.排序

在应用中经常要对查询的结果排序输出,例如,学生成绩由高到底排序

升序asc

倒序 desc

默认的是asc

--将20163001专业的学生按出生时间先后排序。
select
* 
from
SCHOOL_STUDENTS
where
stu_class="20163001"
order by STU_BIRTHDAY asc;

5.合并

使用union子句可以将两个或多个select查询结果合并成一个结果集

--把课程和班级合并查询
 select * from school_class
UNION all
select * from school_course;

使用union组合两个查询的结果集的基本规则如下:

所有查询中的列数和列的顺序必须相同

数据类型必须兼容

 

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯