having在Oracle和MySQL中不一样的地方

在Oracle中,having一定要结合group by使用,但在MySQL中,情况就不一样了,可以单独使用。
 
C:\Documents and Settings\guogang>sqlplus test/test
 SQL*Plus: Release 10.2.0.1.0 - Production on 星期二 8月 12 09:09:58 2014
 Copyright (c) 1982, 2005, Oracle.  All rights reserved.
 连接到:
 Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
 With the Partitioning, OLAP, Data Mining and Real Application Testing options
 
SQL> select * from test1  having owner ='SYS';
 select * from test1  having owner ='SYS'
                          *
 第 1 行出现错误:
 
ORA-00979: 不是 GROUP BY 表达式

SQL> select owner,count(1) from test1  group by owner having owner ='SYS';
 OWNER                            COUNT(1)
 ------------------------------ ----------
 
SYS                                30754

mysql> select * from test having id>98;
 +------+-------------+
 | id  | create_time |
 +------+-------------+
 |  99 | 2014-08-12  |
 |  100 | 2014-08-12  |
 +------+-------------+
 2 rows in set (0.00 sec)
 

mysql> select id,count(1) from test group by id having id>98;
 +------+----------+
 | id  | count(1) |
 +------+----------+
 |  99 |        1 |
 |  100 |        1 |
 +------+----------+
 2 rows in set (0.00 sec)

相关推荐