Oracle PLSQL之HAVING后面的条件可由聚合函数构成,也可由GROUP BY后的字段构成
2011-10-27 15:18
369 查看
HAVING主要用于对分组后的数据进行过滤,
一般我们在其后接聚合函数(SUM,COUNT等),
除此之外我们还可以用GROUP BY后面的字段组成HAVING后的过滤条件。
SQL> select * from dept;
DEPTNO DNAME LOC
------ -------------- -------------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
50 name1 loc1
51 name1 name1
52 loc1 loc1
7 rows selected
SQL> SELECT loc FROM dept GROUP BY loc HAVING count(deptno)>1;
LOC
-------------
loc1
SQL> SELECT loc FROM dept GROUP BY loc HAVING deptno>30;
SELECT loc FROM dept GROUP BY loc HAVING deptno>30
ORA-00979: not a GROUP BY expression
SQL> SELECT loc FROM dept GROUP BY loc,deptno HAVING deptno>30;
LOC
-------------
BOSTON
loc1
loc1
name1
SQL> SELECT loc,deptno FROM dept GROUP BY loc,deptno HAVING deptno>30;
LOC DEPTNO
------------- ------
BOSTON 40
loc1 50
loc1 52
name1 51
SQL>
一般我们在其后接聚合函数(SUM,COUNT等),
除此之外我们还可以用GROUP BY后面的字段组成HAVING后的过滤条件。
SQL> select * from dept;
DEPTNO DNAME LOC
------ -------------- -------------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
50 name1 loc1
51 name1 name1
52 loc1 loc1
7 rows selected
SQL> SELECT loc FROM dept GROUP BY loc HAVING count(deptno)>1;
LOC
-------------
loc1
SQL> SELECT loc FROM dept GROUP BY loc HAVING deptno>30;
SELECT loc FROM dept GROUP BY loc HAVING deptno>30
ORA-00979: not a GROUP BY expression
SQL> SELECT loc FROM dept GROUP BY loc,deptno HAVING deptno>30;
LOC
-------------
BOSTON
loc1
loc1
name1
SQL> SELECT loc,deptno FROM dept GROUP BY loc,deptno HAVING deptno>30;
LOC DEPTNO
------------- ------
BOSTON 40
loc1 50
loc1 52
name1 51
SQL>
相关文章推荐
- Oracle PLSQL之HAVING后面的条件可由聚合函数构成,也可由GROUP BY后的字段构成
- Oracle PLSQL之HAVING后面的条件可由聚合函数构成,也可由GROUP BY后的字段构成
- group by 后 having 使用聚合函数作为条件 【示例】
- oracle 中的group by ,having 和order by
- 【ORACLE】在结果集字段中只有一列要使用组函数MAX,使用GROUP BY效率并不是最高的。
- Mysql Having的用法:对group by之后的分组加限制条件(复制)
- Oracle数据分组:group by,having,rollup,cube,grouping sets
- hive:(group by, having;order by)的使用;group by+多个字段,以及wiki说的group by两种使用限制验证
- oracle数据库中where条件后各个条件的优先级,比如order by, group by,having之类
- oracle mysql group by 对剩余字段进行拼接
- oracle 字段like多个条件(or关系)
- GROUP BY 聚合函数(max min sum avg count) 和HAVING的 使用
- Mysql(二) 聚合函数 group by , having, inner join , limit
- Oracle clob类型的字段作为查询条件的sql语句写法
- Oracle 数据库中的GROUP BY与HAVING
- 【技术支持】Oracle plsql中的having子句并非都能改写成where子句。having子句的适用场景。
- SQL的聚合函数与Group By和Having子句
- oracle group by 字段合并
- mysql 聚合函数 (group by ,having)
- MYSQL数据库(十)- 数据表的插入(insert)、删(delete)、改(update)、查(select)、group by 分组、having语句设置分组条件,order by查询结果排序,