私はこのクエリを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 );
2つのエラー:
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を使用した句を適用できます。ここでは、単に使用する以外にgroupbyはありません。where
WHEREキーワードを集計関数で使用できなかったため、HAVING句がSQLに追加されました。
Select salary from emp WHERE SALARY < (SELECT MAX(SALARY) FROM EMP );
OracleでのHavingの正しい使用方法:
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
/