oracle高级查询之分组查询

1.分组查询

分组函数作用一组函数,并对一组数据返回一个值。

1..常用的分组函数AVG(平均值).SUM(求和).MIN(最小).MAX(最大值).COUNT.(求个数)..WM_CONCAT(行转列)

select(*) from emp

2.distinct关键字去除重复记录

select  count (distinct  deptno) from emp

3.分组函数会自动忽略空值,只会统计非空个数

4.NVL函数使得无法自用忽略空值

select count (*),count(nvl(comm,o)) from  emp

2.分组数据

1.group by 子句将表中数据分成若干组

在select列表中所有未包含在组函数的列都应该包含在group by子句中

   select a,b,c 组函数(x)from table group by a,b,c;

 包含在GROUP BY 子句的列不必包含在select列表中

  多个列的分组可以通过ORDER BY

  select a,b,c 组函数(x)from table group by a,b,c order by a;

HAVING语句用于过滤分组语句

where和having区别

不能再where子句中使用组函数,可以在having子句中使用组函数

having是先分组,后过滤,where先过滤在分组,从sql语句来说where效率高些。

分组函数的嵌套,如下所示

select max(avg(sal)) from emp group by deptno;

原文地址:https://www.cnblogs.com/libaowen609/p/12819703.html