PostgreSQL学习笔记(3)

第三章 聚合与排序

  • 3-1 对表进行聚合查询

聚合函数:通过SQL对数据进行汇总时需要使用的函数。(多行输出一行)

COUNT 计算行数

SUM 计算表中数值列中数据的合计值     AVG 平均值

MAX 求表中任意列中数据的最大值        MIN  最小值

SELECT COUNT(*), COUNT(col_1)
FROM NullTbl;   【注:括号里为选择的列名,而当为*号时,会得到包含NULL的数据行数】

聚合函数会将NULL排除在外,而只有count(*)是例外的 。

MAX/MIN函数原则上可以适用于任何数据类型的列。

使用聚合函数删除重复值:将DISTINCT作为关键字

SELECT COUNT(DISTINCT product_type)
 FROM Product;      【计算去除重复数据后的数据行数,DISTINCT必须写在括号中】

  • 3-2 对表进行分组

GROUP BY子句: 应用于WHERE子句之后,先由WHERE子句过滤条件。

 SELECT product_type, COUNT(*)
  FROM Product
 GROUP BY product_type;  【称为聚合键或分组列,可以用逗号分隔指定多列,按顺序分组】 

聚合键中包含NULL时,在结果中会以空行的形式表现出来。

※※※※※※※※※※※※

1.在使用聚合函数时,SELECT子句中只能存在三种元素:

常数,聚合函数,GROUP BY 子句中指定的列名(聚合键)

2.在GROUP BY 子句中不可以写列的别名,且结果不能排序

3.WHERE子句中不能使用聚合函数

※※※※※※※※※※

  • 3-3 为聚合结果指定条件

HAVING 子句:可以使用聚合函数,且不能包含聚合键之外的列名

SELECT product_type, AVG(sale_price)
FROM Product
GROUP BY product_type
HAVING AVG(sale_price) >= 2500;

WHERE子句=指定行所对应的条件 ;HAVING子句=指定组所对应的条件

  • 3-4对查询结果进行排序

ORDER BY子句需写在整个SELECT语句的末尾,对即将返回的结果执行排序。

SELECT product_id, product_name, sale_price, purchase_price
  FROM Product
ORDER BY sale_price DESC; 【sale_price称为排序键,后面DESC为降序,ASC为升序,默认为升序】

也可以同时指定多个排序键,从左到右的优先级。当排序键中存在NULL时,会在开头或末尾集中显示。ORDER BY中可以使用别名,也可以使用聚合函数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值