• ベストアンサー

単一グループのグループ関数ではありません。

オラクル10を使っています。 select NAMAE max(TEN) from KYOUKA WHERE OK=1 and CLASS IS ('A', 'B', 'C'); で単一グループのグループ関数ではありません。 というエラーになります。 CLASS | OK | NAMAE | TEN | -------------------------- A 1 a01 50 A 1 a02 60 B 1 b01 10 C 1 c01 70 C 0 c02 100 a02 60 b01 10 c01 70 という結果になってほしいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • delphian4
  • ベストアンサー率26% (57/212)
回答No.1

SQLの根本的な文法が理解できていないのかと GROUP BY 句について調べてみましょう

その他の回答 (1)

  • hiro_sun
  • ベストアンサー率27% (14/51)
回答No.2

質問から判断するに、SQLの基礎を学んでいる最中のようですね。 #1の方が仰る通り、GROUP BYについて学ぶ必要があります。 エラー内容はSELECT句にグループ関数MAXが使用されているのに、NAMAEでグループ化していないからかと思います。 語尾にGROUP BY NAMAEが必要です。 しかし、それだけでは a02 60 b01 10 c01 70 にはなりません。 取得したいデータの条件がイマイチ質問からでは分かりません。 「CLASSごとTENが最も多きいデータを取得する。 対象となる項目は、OKの値が 1 で、かつCLASSの値が 'A','B','C'のいずれかである」ということで宜しいでしょうか? 質問文の内、確実にご指摘できる箇所として、 CLASS IS ('A', 'B', 'C') は CLASS IN ('A', 'B', 'C')のぐらいでしょうか? 求めている抽出結果を拝見する限り、サブクエリなどの手法が必要になる可能性があります。 失礼ながら質問者様の理解度より難易度が高い記述になるかと思います。 抽出したい内容・条件などを明確に補足していただければと思います。

関連するQ&A