首页 > 数据库 >数据库系统-06-SQL查询语句4

数据库系统-06-SQL查询语句4

时间:2024-10-21 12:20:42浏览次数:9  
标签:count 聚合 函数 分组 SQL 06 数据库系统 where having

一、Aggregate Functions (聚集函数)

1.定义:聚合函数接受一组(集合或多重集合)值作为输入,并返回单个值。

2.种类

函数

功能

count

统计数量

max

最大值

min

最小值

avg

平均值

sum

求和

二、基本的聚合

1.语法:select 聚合函数(字段列表) from 表名;

例1:找出计算机科学系教师的平均工资。

2.如果想消除重复项,可以在聚合表达式中使用distinct关键字。

例2:找出在2010年春季学期教授某门课程的教师总数。

3.我们经常使用聚合函数count来计算关系中元组的数量。这个函数在SQL中的表示法是count(*)。SQL不允许使用distinct with count(*)。对max和min使用distinct是合法的,即使结果不会改变。

例3:select count (*) from course;

4.使用Null值进行聚合

除了count(*)外所有的聚集函数都忽略输入集合中的空值

例4:如果集合中只有null值怎么办?

- count返回0

-所有其他聚合返回null

三、分组查询

1.语法

Select 字段列表 from 表名 where条件 group by 分组字段名 having分组后的过滤条件;

2.where和having的区别

(1)执行时机不同:where是分组之前进行过滤,不满足where条件不参与分组;having是分组后对结果进行过滤。

(2)判断条件不同:where不能对聚合函数进行判断,而having可以。

3.注意

(1)执行顺序:where >聚合函数> having

(2)分组之后,查询的字段一般为聚合函数和分组字段,查询其他字段无任何意义

例5:

四、基于分组的聚合

1.不仅将聚合函数应用于单个元组集合,还可以应用于一组元组集合。

例6:找出每个部门的平均工资。

注意:没有讲师的部门将不会出现在结果中

2.出现在select子句中但没有被聚集的属性必须出现在group by子句中

3.Having语句

用在having中的谓词在形成分组后才起作用,而where子句中的谓词在分组前起作用

例7:找出平均工资大于42000的所有部门的名称和平均工资。

例8:对于2009年开设的每个课程部分,如果该部分至少有2名学生,请计算该部分所有注册学生的平均总学分(tot_cred)。

4.sql语句顺序

标签:count,聚合,函数,分组,SQL,06,数据库系统,where,having
From: https://blog.csdn.net/m0_73376761/article/details/143091464

相关文章

  • 数据库系统-07-SQL查询语句5-嵌套子查询
    一、嵌套子查询1.概念:子查询是嵌套在另一个查询中的select-from-where表达式。子查询通常被用来对集合成员资格、集合的比较以及集合的基数进行检查2.集合的成员资格(1)概念:SQL允许测试元组在关系中的成员资格。连接词in测试元组是否是集合中的成员,集合是由select子句产生的......
  • 精品水果线上销售网站/精品水果/线上购买水果/水果销售网站/网购精品水果/优质水果网
    博主介绍......
  • 企业信息管理系统/企业管理软件/信息管理系统/ERP系统/CRM系统/企业信息化/办公自动化
    博主介绍......
  • 无人超市管理系统/无人超市解决方案/智能化零售管理/自助结账系统/无人便利店技术/自
    博主介绍......
  • Linux系统MySQL安装
    1.下载安装包官方网站:https://www.mysql.com/,找到下载DOWNLOADS,下载操作系统对应的社区版本。本文使用的数据库版本是5.7.41。在社区版本下载界面可以下载最新和以前的版本。2、安装MySQL2.1、查看是否已经安装MySQLrpm-qa|grepmysqlmysql-libs-5.1.73-7.el6.x86_64......
  • MySQL 不常用命令
    1、查看当前正在执行的查询SHOWFULLPROCESSLIST;查询结果mysql>SHOWFULLPROCESSLIST;+-------+-----------------+---------------------+--------------+---------+---------+------------------------+-----------------------+|Id|User|Host......
  • mysql窗口函数
    窗口函数SUM()统计SELECT *, SUM(duration)OVER()ASexp1, ##统计全部数据合计值 SUM(duration)OVER(PARTITIONBYuser_name)ASexp2, ##分组求和,不同数据相同分组会展示相同的累积值 SUM(duration)OVER(ORDERBY`date`ASC)ASexp3, ##全部数据累积和,......
  • .NET Core SqlSugar
    概念:1.官方文档:https://www.donet5.com/Home/Doc?typeId=11802.在vsstudio中导包SqlSugarCore创建模型类:1.vsstudio2022中选择项目2.选择6.03.projram.csusingSqlSugar;varbuilder=WebApplication.CreateBuilder(args);//Addservicestothecontain......
  • sql注入学习
    万能密码网站后台的数据查询语句为:select*frommember whereusername='&user'andpasswd='&pwd'正常使用者帐号是admin,密码12345,那么SQL语句就变为:select*frommemberwhereusername='admin'andpasswd='123456'输入用户名admin(也可任意输入),密码abc'or......
  • MySQL 中 DATETIME 和 TIMESTAMP 时间类型详解
    MySQL的日期类型简介在MySQL中有两种存储时间的数据类型 DATETIME 和 TIMESTAMP,它们在数据库实际应用中,各有各的优势和劣势。一.DATETIME和TIMESTAMP的相同点两个数据类型存储时间的格式一致。均为YYYY-MM-DDHH:MM:SS两个数据类型都包含「日期」和「时间」部分。......