2016-10-24 9 views
-1

は、これは私のコードです:Oracleエラー:欠落している右括弧

SELECT SIGHTING_ID,MAX((SQRT(POWER(LATITUDE-(-28),2)+(POWER(LONGITUDE-151,2)) AS DISTANCE 
FROM SIGHTINGS 

私はこの問題は、ブラケットと思います。私はたくさんの組み合わせを試しましたが、ここでもエラーがあります。何ができますか、またはクエリが間違っていますか?

+5

クエリでは、7つのカッコが開き、4つのみ閉じます。開いている括弧をそれぞれ閉じなければならないことは知っていますか?次に、GROUP BYのない属性と集合関数を選択します。これはSQLでは不可能です。 – Renzo

+0

ようこそStackoverflowへ。あなたが見ているエラーは何ですか?あなたは何を得ると思いますか? –

+0

コンパイラを信頼してみませんか? :)それは、あなたからの問題を教えてくれました。なぜあなたは2を開くのですか?(最大の場合は – Ted

答えて

0

エラーで述べたように、右括弧がありません。正しいクエリは次のとおりです

SELECT SIGHTING_ID, 
     Max(Sqrt(Power(LATITUDE - (-28), 2) + (Power(LONGITUDE - 151, 2)))) AS DISTANCE 
FROM SIGHTINGS               --^^ 
GROUP BY SIGHTING_ID   

2つの右括弧が追加され、不要な左括弧が1つ削除されました。最大距離を持つレコードのみあなたは、あなたがクエリでMAX関数を使用しているとして、GROUP BY句を含まこの

SELECT * 
FROM (SELECT SIGHTING_ID, 
       Sqrt(Power(LATITUDE - (-28), 2) + (Power(LONGITUDE - 151, 2))) AS DISTANCE 
     FROM SIGHTINGS 
     ORDER BY DISTANCE DESC) 
WHERE ROWNUM = 1 
+0

ありがとうございます!グループ化されていないエラーが発生しました。これを解決するためにgroup byを使用する必要がありますか? –

+0

@ReginaldHo - 'Group by'チェックを追加しませんでした。 –

+0

しかし、実行した後、どのように私は距離の最大値を表示することができますか? –

1

をしようとすると上記のクエリは、各SIGHTING_ID

の最大距離を返します。

SELECT SIGHTING_ID, 
     MAX(SQRT(POWER(LATITUDE-(-28),2)+POWER(LONGITUDE-151,2))) AS DISTANCE 
FROM SIGHTINGS 
GROUP BY SIGHTING_ID; 
関連する問題