前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SQL理论课-Class 3

SQL理论课-Class 3

作者头像
OliverHan
发布2023-04-04 11:17:55
2420
发布2023-04-04 11:17:55
举报
文章被收录于专栏:阿狐和柴柴

Class_2复习

代码语言:javascript
复制
select b.ENAME
from EMP a,EMP b
where a.mgr=b.empno

select empno from emp where deptno = 20
intersect
select empno from emp where deptno = 20

Class_3

聚集函数 Aggregate Functions

avg min max sum count

输入一个集合,输出一个值。

代码语言:javascript
复制
avg,sum #只能用于数值
min,max,count #可以用于除数值之外。
count #是用来计数的,非NULL记录+1,反之不积累。
代码语言:javascript
复制
#AVG例子:
#注意:相同数据不去重复。
select avg(salary)
from instructor
where dept_name = 'Biology'
代码语言:javascript
复制
#加distinct去重复:
select 聚集函数(distinct 属性)

注意:

代码语言:javascript
复制
select count (*) 里面不能使用 distinct
distinct 在 max 和 min 中一样。
除了 count(*)外所有的聚集函数都忽略输入集合中的空值

如果输入的集合只有空值

avg , max, min 返回空值 count 输入空值,返回0

分组:

举例:求多个系的工资平均值

先按照系分成多个组,每个组求一个工资平均值

代码语言:javascript
复制
-- 注意:出现在select子句中但没有被聚集的属性必须出现在   group by  子句中
select 属性1,属性2,聚集函数(属性)
from 表
group by 属性1,属性2(按照属性1,属性2分组)

-- 注意:筛选条件:分组后写条件用having,不分组用where
select 属性1,属性2,聚集函数(属性)
from 表
group by 属性1,属性2(按照属性1,属性2分组)
having 条件
这样先通过 having 过滤元组,然后再分组。

计算机操作顺序: From where Group BY Having Select Order Bya

练习题:

代码语言:javascript
复制
select count(数字)
from instructor
本质上就是数行数

select dept_name,max(budget)
from department
group by dept_name

课后练习:

select course_id,count(ID)
from takes
group by course_id

select ID,count(course_id)
from takes
group by ID
having count(course_Id)>=3
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-11-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Class_2复习
  • Class_3
    • 聚集函数 Aggregate Functions
      • avg min max sum count
      • 注意:
      • 如果输入的集合只有空值
    • 分组:
      • 举例:求多个系的工资平均值
    • 练习题:
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档