1

私はこのクエリをOracleデータベースに作成しました。

Select salary from emp having salary < (SELECT MAX(SALARY) FROM EMP ));

http://sqlfiddle.com/#!4/47961/13

しかし、それは機能していません。

私はどこが間違っていますか?

4

5 に答える 5

3

やる事、

  • 使用WHERE集約された状態と比較するときに持つ使用
  • 余分な括弧を削除し、

例えば。

Select salary 
FROM emp 
WHERE salary < (SELECT MAX(SALARY) FROM EMP );
于 2013-01-15T14:07:32.697 に答える
3

2つのエラー:

  • WHEREの代わりに使用してくださいHAVING
  • 余分な括弧を削除します。

これを試して:

SELECT salary
FROM emp
WHERE salary < (SELECT MAX(salary) FROM emp);

http://sqlfiddle.com/#!4/47961/17

于 2013-01-15T14:07:43.067 に答える
1
Select salary from emp where salary < (SELECT MAX(SALARY) FROM EMP ));

havinggroup byを使用した句を適用できます。ここでは、単に使用する以外にgroupbyはありません。where

HAVING句

WHEREキーワードを集計関数で使用できなかったため、HAVING句がSQLに追加されました。

于 2013-01-15T14:07:59.947 に答える
0
Select salary from emp WHERE SALARY < (SELECT MAX(SALARY) FROM EMP );
于 2013-01-15T14:09:00.823 に答える
0

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
/
于 2013-01-15T15:03:19.923 に答える