SQL基础教程——对表进行分组(第三章第二节)

1、GROUP BY子句

SELECT Product_type,count(*)
FROM Product
GROUP BY product_type;

注意:
1、GROUP BY 子句中指定的列称为聚合键或者分组列。

2、聚合键中包含NULL的情况

聚合键中包含NULL时,在结果中会以“不确定”行(空行)的形式表现出来

3、使用where子句时group by的执行结果

SELECT purchase_price,count(*)
FROM product
WHERE product_type='衣服'
GROUP BY purchase_price;
--FROM——>WHERE——>GROUP BY——>SELECT(内部执行顺序)

4、与聚合函数和GROUP BY子句有关的常见错误

4.1、在SELECT子句中书写了多余的列

在使用聚合函数时,SELECT子句只能存在以下三种元素

  1. 常数
  2. 聚合函数
  3. 聚合键
SELECT product_name,purchase_price,count(*)
FROM product
GROUP BY purchase_price;
--列名product_name并没有包含在GROUP YB子句中,因此该列名也不能书写再SELECT子句中。

4.2、再GROUP BY 子句中写了列的别名

SELECT product_type AS pt,count(*)
FROM product
GROUP BY pt;
--SELECT子句再GROUP BY子句之后执行,再执行GROUP BY子句时,SELECT子句中定义的别名,DBMS还并不知道。

4.3、GROUP BY子句的结果能排序吗

随机的,通常SELECT语句的执行结果的显示顺序都是随机的,因此想要按照某种特定顺序进行排序的话,需要在SELECT语句中进行指定。

4.4、在WHERE子句中使用聚合函数

只有SELECT子句和HAVING子句(以及ORDER BY子句)中能够使用聚合函数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值