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 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> SQL Part3 --- 聚合操作符 -> 正文阅读

[大数据]SQL Part3 --- 聚合操作符

聚合操作符 Aggregate Operators

Sailors

sidsnameratingage
22Dustin745.0
29Brutus133.0
31Lubber855.5
32Andy825.5
58Rusty1035.0
64Horatio735.0

Reserves

sidbidday
2210110/10/04
2210210/10/04
2210310/08/04
2210410/07/04
3110211/10/04

Boats

bidbnameColor
101Interlakeblue
102Interlakered
103Clippergreen
104Marinered
  • 注意当使用Aggregate Operators时,target list(select 语句)中只能有aggregate attribute,不能有其他的attribute, 除非使用GROUP BY或者HAVING

COUNT(A)

Count the number of sailors

SELECT COUNT (*)
FROM Sailors S;

Count the number of different sailors

SELECT COUNT (DISTINCT S.sname)
FROM Sailors S

SUM(A)

Find the sum of ages of all sailors with a rating of 10

 SELECT SUM (S.age)
FROM Sailors S
WHERE S.rating=10;

AVG(A)

Find the average age of all sailors with rating 10

SELECT AVG (S.age)
FROM Sailors S
WHERE S.rating=10

MAX(A), MIN(A)

Find the name and age of the oldest sailor


SELECT S.sname, MAX(S.age)
FROM Sailors S;

#上面的写法是错的,因为target list里只能有MAX(S.age)一个属性
#正确写法如下
SELECT S.sname, S.age
FROM Sailors S
WHERE S.age = ( SELECT MAX(S2.age)
FROM Sailors S2 );

# 或者也可以这样写
SELECT S.sname, S.age
FROM Sailors S
WHERE ROWNUM <= 1
ORDER BY S.age DESC;

GROUP BY and HAVING

SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name
HAVING aggregate_function(column_name) operator value;

Example: 查找总访问量大于 200 的网站

SELECT Websites.name, Websites.url, SUM(access_log.count) AS nums FROM (access_log
INNER JOIN Websites
ON access_log.site_id=Websites.id)
GROUP BY Websites.name
HAVING SUM(access_log.count) > 200;

Example: 将相同的business_id分组 HAVING COUNT(business_id) = 2 计算每个分组中相同的business_id的数量,挑选count = 2的business_id

SELECT DISTINCT business_id 
FROM BUSINESS_MAIN_CATEGORIES t
WHERE t.main_category in ('Convenience Stores', 'Dentists')
GROUP BY business_id
HAVING COUNT(business_id) = 2
  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-04-26 11:47:11  更:2022-04-26 11:49: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/24 3:46:48-

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