where子句中不能使用聚集函数
原创
©著作权归作者所有:来自51CTO博客作者水滴的原创作品,请联系作者获取转载授权,否则将追究法律责任
编译以下语句出错:
select s.segment_name,s.segment_type,s.tablespace_name,s.next_extent
from dba_segments s
where not exists (select 1
from dba_free_space f
where s.tablespace_name = f.tablespace_name
and max(f.bytes) > s.next_extent);
报错型号打在max(f.bytes)下:
ORA - 00934:group function is not allowed here
原来,在where中不能出现聚集函数,使用聚集函数要带having
正确SQL写法如下:
select s.segment_name,s.segment_type,s.tablespace_name,s.next_extent
from dba_segments s
where not exists (select 1
from dba_free_space f
where s.tablespace_name = f.tablespace_name
having max(f.bytes) > s.next_extent);
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
【MySQL】为什么在having子句中可以使用在select子句中定义的别名?
可以在group byorder byhaving子句中使用别名。**不可以在where中使用别名。其他数据库不一定支持此操作。
mysql 数据库 SQL SQL执行顺序 MySQL -
where子句的使用
where子句的使用:关系运算符: = > < <= >= != <>
sum max where -
mysql中where子句中函数的性能 mysql where 包含
1、WHERE 子句条件操作符 包括:> 、<、>=、<=、!= 、=、BETWEEN ... AND ...(在指定的两个值之间)
mysql中where子句中函数的性能 操作符 SQL 优先级