【数据库】聚合和排序

本文详细介绍了SQL中的聚合函数,如COUNT、SUM、AVG、MIN、MAX的使用,以及GROUP BY分组和HAVING子句的应用。同时,讨论了ORDER BY语句进行数据排序的方法,包括ASC和DESC的使用,以及对多个排序键的处理。文章还提供了针对不同场景的SQL练习题,帮助读者巩固理解。
摘要由CSDN通过智能技术生成

聚合函数:用于汇总的函数
COUNT:计数
SUM
AVG
MIN
MAX

3.1计算全部行数:

postgres=# SELECT COUNT(*)
postgres-# FROM Product;
 count
-------
     8
(1 行记录)

3.2COUNT某列不计入NULL值,COUNT(*)会计入

postgres=# SELECT COUNT(purchase_price)
postgres-# FROM Product;
 count
-------
     6
(1 行记录)

3.4SUM求某列的合计值

postgres=# SELECT SUM(sale_price)
postgres-# FROM Product;
  sum
-------
 16780
(1 行记录)

3.9MIN和MAX原则上适用于所有数据类型:

postgres=# SELECT MIN(regist_date)
postgres-# FROM Product;
    min
------------
 2008-04-28
(1 行记录)

3.10计算去除重复数据后的行数:

postgres=# SELECT COUNT(DISTINCT product_type)
postgres-# FROM Product
postgres-# ;
 count
-------
     3
(1 行记录)

3.12 SUM函数使用DISTINCT

postgres=# SELECT SUM(sale_price),SUM(DISTINCT sale_price)
postgres-# FROM Product;
  sum  |  sum
-------+-------
 16780 | 16280
(1 行记录)

GROUP BY分组语句
GROUP指定的句子叫聚合键
3.13按照商品种类分组计数

postgres=# SELECT product_type,COUNT(*)
postgres-# FROM Product
postgres-# GROUP BY product_type;
 product_type | count
--------------+-------
 衣服         |     2
 办公用品     |     2
 厨房用具     |     4
(3 行记录)

3.15 GROUP BY 和WHERE 连用

postgres=# SELECT purchase_price,COUNT(*)
postgres-# FROM Product
postgres-# WHERE product_type='衣服'
postgres-# GROUP BY purchase_price;
 purchase_price | count
----------------+-------
            500 |     1
           2800 |     1
(2 行记录)

GROUP的使用注意事项:
1.SELECT语句后面不可以写聚合键以外的列名
2.先执行GROUP,后执行SELECT,所以GROUP语句后面不可以写别名
3.GROUP的结果是无序的。
4.WHERE 语句不能使用聚合函数

HAVING子句:
3.20对分组后的结果选取数据行数为2的组。

postgres=# SELECT product_type,COUNT(*)
postgres-# FROM Product
postgres-# GROUP BY product_type
postgres-# HAVING COUNT(*)=2;
 product_type | count
--------------+-------
 衣服         |     2
 办公用品     |     2
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值