別のテーブルにあるものの名前と国を最も多く返すクエリを作成しようとしています。
構造は次のとおりです。
ShipModels(mname, type, country, numGuns, gunSize)
Ships(sname, hasModel, launchYear)
Battles(bname, year)
Outcomes(ship, battle, result)
私はさまざまなことを試しましたが、うまくいきません。これは私の現在のクエリです:
SELECT ship, country
FROM ShipModels, Ships, Outcomes
WHERE hasModel = mname AND ship = sname
GROUP BY ship
HAVING COUNT(ship) >=
( SELECT COUNT (ship) FROM Outcomes GROUP BY ship);
Oracleエラー:
ERROR at line 1:
ORA-00979: not a GROUP BY expression
私が読んだことから、このエラーはSELECTステートメントに集計関数がある場合にスローされますが、...まあ、ありません。足りないものはありますか?どうすればこれを機能させることができますか?