我在 oracle 数据库上写了这个查询。
Select salary from emp having salary < (SELECT MAX(SALARY) FROM EMP ));
http://sqlfiddle.com/#!4/47961/13
但它没有用。
我哪里错了?
答案 0 :(得分:3)
要做的事情,
WHERE
(在与汇总条件比较时使用)例如
Select salary
FROM emp
WHERE salary < (SELECT MAX(SALARY) FROM EMP );
答案 1 :(得分:3)
两个错误:
WHERE
代替HAVING
。试试这个:
SELECT salary
FROM emp
WHERE salary < (SELECT MAX(salary) FROM emp);
答案 2 :(得分:1)
Select salary from emp where salary < (SELECT MAX(SALARY) FROM EMP ));
您可以在使用分组的地方应用having
子句,此处没有分组,只需使用where
HAVING子句已添加到SQL,因为WHERE关键字不能与聚合函数一起使用。
答案 3 :(得分:0)
Select salary from emp WHERE SALARY < (SELECT MAX(SALARY) FROM EMP );
答案 4 :(得分:0)
使用Oracle中的正确方法:
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
/