問題ID: 19677

  • フォーラムは新サイトへ移行しました。
  • このフォーラムではゲスト投稿が禁止されています
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 .2 | 投稿日時 2017-1-17 17:17
daaayoshi  常連   投稿数: 14
正解となっている以下は、
SELECT employee_name FROM employees WHERE salary > (SELECT AVG(salary) FROM employees);

以下では誤りですか。
SELECT employee_name FROM employees HAVING salary > AVG(salary);


もう一方の正解の方も同様にHAVINGを使用するのは誤りでしょうか。
よろしくお願いします。
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2017-1-18 9:07
quensan  長老   投稿数: 119
環境があればご自身で試されるのが一番理解できるのですが、エラーが出ます。
HAVING句に指定できるのは、GROUP BY句で指定した列か、グループ関数のみです。(salary列を条件にしているのでエラー)
-----
SQL> SELECT employee_name FROM employees HAVING salary > AVG(salary);
SELECT employee_name FROM employees HAVING salary > AVG(salary)
*
行1でエラーが発生しました。:
ORA-00979: GROUP BYの式ではありません。
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2017-1-24 0:38
daaayoshi  常連   投稿数: 14
quensanさん
お返事が遅れました。確かにおっしゃる通りでした。ありがとうございます。

  >フォーラム検索へ


Copyright (c) 2020 Ping-t All rights reserved.