PostgreSQL基础5--聚合与排序
来源:互联网 发布:几个c语言小游戏源码 编辑:程序博客网 时间:2024/05/17 00:03
1 聚合函数
1.1 COUNT()
SELECT COUNT(*) FROM product;SELECT COUNT(purchase_price) FROM product;
注意:count(*) 会得到包含NULL的数据行数,count(<列名>)会得到NULL之外的数据行数
1.2 聚合函数SUM()
SELECT SUM(sale_price) FROM product;注意:在对包含NULL的对应列数据进行计算时,会将NULL排除在外进行计算,所以就不会和“四则运算中如果存在NULL,结果就一定是NULL”相矛盾;且这种排除和将其视为“0”并不相同。
1.3 MAX() MIN()
SELECT MAX(sale_price),MIN(purchase_price) FROM product;
注意:这两个函数适合所有数据类型,包括字符串类型的列,而SUM()和AVG()只适合数值类型的列
1.4 DISTINCT
SELECT COUNT(DISTINCT product_type) FROM product;
注意:此聚合可以计算出此列数据值的种类,且是删除掉相同的数据再计算
2 对表进行分组 GROUP BY
SELECT product_type, COUNT(*) FROM product GROUP BY product_type;对查出的数据按product_type进行分类
SELECT purchase_price, COUNT(*) FROM product GROUP BY purchase_price;注意:如果包含NULL值,也会将其归为一组
3 为聚合结果指定条件 HAVING
注意:HAVING子句是用来指定分组的条件,WHERE子句是用来指定数据行的条件
HAVING子句要写在GROUP BY子句之后
构成:常数 聚合函数 GROUP BY子句中指定的列名(即聚合键)
SELECT product_type, COUNT(*) FROM product GROUP BY product_type HAVING COUNT(*) = 2;
SELECT product_type, COUNT(*) FROM product GROUP BY product_type;
SELECT product_type, AVG(sale_price) FROM product GROUP BY product_type;SELECT product_type, AVG(sale_price) FROM product GROUP BY product_type HAVING AVG(sale_price) <= 2500;
4 对查询结果排序
4.1 ASC--升序 DESC--降序
SELECT product_id, product_name, sale_price, purchase_price FROM product ORDER BY sale_price;以sale_price升序排列,不指定的话默认是升序
SELECT product_id, product_name, sale_price, purchase_price FROM product ORDER BY sale_price DESC;以sale_price降序排列
4.2 指定多个排序键
SELECT product_id, product_name, sale_price, purchase_price FROM product ORDER BY sale_price, product_id;使用多个排序键,优先级依次降低,先以sale_price升序排,如果sale_price相同再以product_id升序排
4.3 ORDER BY 值得注意的地方
4.3.1 可以使用列的别名
SELECT product_id AS id, product_name, sale_price AS sp, purchase_price FROM product ORDER BY sp, id;注意:为什么GROUP BY字句里面不可以使用别名,而ORDER BY里面可以使用别名?
因为在DBMS内部的执行顺序中,SELECT字句在GROUP BY字句之后,ORDER BY字句之前
,所以GROUP BY字句在使用别名的时候,别名还没有被创建。DBMS内部执行顺序(可能不同的数据库略有差别):FROM --> WHERE --> GROUP BY --> HAVING --> SELECT --> ORDER BY
4.3.2 可以使用SELECT子句中未出现的列
SELECT product_name, sale_price, purchase_price FROM product ORDER BY product_id;
4.3.3 可以使用聚合函数
SELECT product_type, COUNT(*) FROM product GROUP BY product_type ORDER BY COUNT(*);
阅读全文
0 0
- PostgreSQL基础5--聚合与排序
- PostgreSql 聚合函数string_agg与array_agg
- MySQL之聚合与排序
- SQL的聚合与排序
- PostgreSQL 聚合函数讲解
- Java编程算法基础---组合与聚合
- UML基础之组合与聚合关系
- PostgreSql的聚合函数--string_agg
- postgresql 聚合的暗坑
- 【PostgreSQL】PostgreSQL基础操作
- 数据库(5)聚合、分组、排序、分页
- PostgreSQL基础
- postgreSQL基础
- PostgreSQL基础
- postgresql基础
- PostgreSQL 基础
- 关系型数据库基础之:聚合函数与分组
- SQL基础(一八)--- 数据分组与聚合函数
- 李沐深度学习
- IntelliJ IDEA配置Tomcat
- io框架练习
- stl函数大全
- salt、puppet、ansible
- PostgreSQL基础5--聚合与排序
- systemctl命令介绍
- ListView多条目加载
- Linux搭建本地TFTP服务器
- ClassLoad类加载器读取ClassPath路径下的配置文件并完成创建JDBC链接(二)
- Squeeze-and-Excitation Networks
- leetcode---triangle---dp
- POJ3363
- Ubuntu常用操作汇总与问题解决汇总