聚合分组指定排序

来源:互联网 发布:车载导航端口检测工具 编辑:程序博客网 时间:2024/05/20 19:19
聚合分组指定排序
1聚合函数
(1)通过SQL对数据进行某种操作或计算时需要使用函数:用于合计的函数称为聚合函数或者是集合函数。
(2)种类 COUNT 计算表中的记录数(行数)
      SUM:计算表中数值列的数据合计值
      AVG:计算表中数值列的平均值
      MAX:求表中任意列中数据最大值
      MIN:求表中任意列中数据最小值
(3) COUNT函数的结果根据参数的不同而不同。COUNT(*)会得到包含NULL 的数据行数。而COUNT(列名)得到NULL之外的数据行数。
(4).聚合函数会将NULL排除在外,但是COUNT(*)除外,不会排除NULL。
(5).max/min 函数适用于所有数据类型的列,SUN/AVG 函数只适用数值类列。


2分组
(1)GROUP BY 子句中不能使用SELECT子句中列的别名。
(2)GROUP BY 子句的聚合结果是无序的。
(3)WHERE 子句不能使用聚合函数
(4)聚合键中包含NULL 在结果会以“不确定”行、空行的形式表现出来。
(5)SELECTI子句和HAVING子句以及WHERE子句中使用聚合函数。
 
与聚合函数和GROUP BY子句中常见错误
1使用GROUP BY子句时,SELECT 子句不能出现聚合键之外的列名。不能使用SELECT 子句定义别名。2不能书写多余的列。



3指定
(1)WHERE 子句用来指定数据行的条件 HAVING子句指定分组的条件。
(2)HAVING 子句构成要素 常数、聚合函数、GROUP BY子句指定的列名

以前面shop 章节列子
SELECT SHOP_BUNRUI,COUNT(*)    
FROM SHOP                      
GROUP BY SHOP_BUNRUI
HAVING COUNT(*)=2;
SHOP_BUNRUI  count
衣服         2
办公用品     2


SELECT  SHOP_BUNRUI,AVG(hanbai_tanka)

FROM SHOP

GROUP BY  SHOP_BUNRUI

HAVING AVG(hanbai_tanka)>=200;


4排序
oracle order by 默认是升序  SQL语句中,asc是指定列按升序排列,desc则是指定列按降序列
书写顺序SELECT-FROM-WHERE子句-GROUP BY子句-HAVING子句-ORDER BY子句
执行顺序FROM-WHERE-GROUP BY-HAVING-SELECT-ORDER BY














原创粉丝点击