我在oracle数据库上写了这个查询。
Select salary from emp having salary < (SELECT MAX(SALARY) FROM EMP ));
http://sqlfiddle.com/#!4/47961/13
但它不起作用。
我哪里错了?
我在oracle数据库上写了这个查询。
Select salary from emp having salary < (SELECT MAX(SALARY) FROM EMP ));
http://sqlfiddle.com/#!4/47961/13
但它不起作用。
我哪里错了?
要做的事情,
WHERE
(与聚合条件比较时使用具有)例如。
Select salary
FROM emp
WHERE salary < (SELECT MAX(SALARY) FROM EMP );
两个错误:
WHERE
而不是HAVING
.尝试这个:
SELECT salary
FROM emp
WHERE salary < (SELECT MAX(salary) FROM emp);
Select salary from emp where salary < (SELECT MAX(SALARY) FROM EMP ));
您可以having
在使用 group by 的地方应用子句,这里没有 group by 而只是使用where
HAVING 子句被添加到 SQL 中,因为 WHERE 关键字不能与聚合函数一起使用。
Select salary from emp WHERE SALARY < (SELECT MAX(SALARY) FROM EMP );
在 Oracle 中使用 Have 的正确方法:
SELECT sal FROM scott.emp
GROUP BY sal
HAVING sal < (SELECT MAX(SAL) FROM scott.EMP)
/
SELECT deptno, COUNT(*) total_emps_by_dept
FROM scott.emp
GROUP BY deptno
HAVING COUNT(*) > 1
/