IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 第8章 聚合函数 -> 正文阅读

[大数据]第8章 聚合函数

1.什么是聚合函数

*聚合函数作用于一组数据、并对一组数据返回一个值。

*聚合函数的类型:AVG()、SUM()、MAX()、MIN()、COUNT()

(1)AVG和SUM函数

可以对数值型数据使用AVG和SUM函数

例如:

SELECT AVG(salary), MAX(salary),MIN(salary), SUM(salary) FROM employees WHERE job_id LIKE '%REP%';

(2)MIN和MAX函数

可以对任意数据类型的数据使用MIN和MAX函数

?? 例如:

SELECT MIN(hire_date), MAX(hire_date) FROM employees;

(3)COUNT函数

?? COUNT(*)返回表中记录总数,适用于任意数据类型

?? 例如:

SELECT COUNT(*) FROM employees WHERE department_id = 50;

?? COUNT(expr) 返回expr不为空的记录总数

例如:

SELECT COUNT(commission_pct) FROM employees WHERE department_id = 50

2.GROUP BY

(1)基本使用

?? 可以使用GROUP BY子句将表中的数据分成若干组

例如:

SELECT department_id, AVG(salary) FROM employees GROUP BY department_id ;

(2)使用多个列分组

?? 例如:

?? SELECT department_id dept_id, job_id, SUM(salary) FROM employees GROUP BY department_id, job_id ;

(3)GROUP BY中使用WITH ROLLUP

?? 使用 WITH ROLLUP 关键字之后,在所有查询出的分组记录之后增加一条记录,该记录计算查询出的所有记录的总和,即统计记录数量。

?? 例如:

SELECT department_id,AVG(salary) FROM employees WHERE department_id > 80 GROUP BY department_id WITH ROLLUP;

?? 注意:当使用ROLLUP时,不能同时使用ORDER BY子句进行结果排序,即ROLLUP和ORDER BY是互相排斥的。

3.HAVING

*使用HAVING子句过滤分组:行已经被分组;使用了聚合函数;满足HAVING子句中条件的分组将被显示;HAVING不能单独使用,必须要跟GROUP BY一起使用

?? 例如:

SELECT department_id, MAX(salary) FROM employees GROUP BY department_id HAVING MAX(salary)>10000 ;

*WHERE和HAVING的对比:

区别1:WHERE 可以直接使用表中的字段作为筛选条件,但不能使用分组中的计算函数作为筛选条件;HAVING 必须要与 GROUP BY 配合使用,可以把分组计算的函数和分组字段作为筛选条件。

区别2:如果需要通过连接从关联表中获取需要的数据,WHERE 是先筛选后连接,而 HAVING 是先连接后筛选。

4.SELECT的执行过程

*查询的结构:

*SELECT执行顺序:

FROM -> WHERE -> GROUP BY -> HAVING -> SELECT 的字段 -> DISTINCT -> ORDER BY -> LIMIT

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-10-17 12:41:07  更:2022-10-17 12:43:01 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/19 16:34:24-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码