目的は、最短の名前で都市を選択することです。単純なSQLコマンドのエラーとそれを解決する方法
私はSQLに非常に新しいですし、私は次のクエリのための問題の原因を理解することはできません。
SELECT city, min(len)
FROM (SELECT city, length(city) AS len
FROM station
GROUP BY city
)
;
それはエラーがスローされます。
ERROR at line 1:
ORA-00937: not a single-group group function
私は問題をGoogleで検索し、それが言いますmin
などの集計関数を使用する場合はGROUP BY
が必要です。
SELECT city, min(len)
FROM (select city, length(city) AS len
FROM station
GROUP BY city
)
GROUP BY city
;
しかし、それは私が(私は疑うように)すべての都市分間与えます:だから私は、次のことを試してみました。
SELECT city, min(len)
FROM (select city, length(city) AS len
FROM station
GROUP BY city
)
GROUP BY len
;
を、それは私に別のエラーを与える:
は、その後、私はgroup by len
しようとした
ERROR at line 1:
ORA-00979: not a GROUP BY expression
私は列全体に分を選ぶだろうか...なぜ を理解していませんか?
これは、あなたがまだOracleエラー・メッセージが表示されますMySQLおよびMicrosoft SQL Serverの両方で質問をタグ付けしている –
MySQLのではなくSQL Serverのではありません。あなたはあなたが使っているDBMSを知っていますか? –
@ダングズマン・ハハ...ノー!私はちょうどHackerRankのこのSQLトラックを選んだ。私はそれが使用するDBMSを知らなかった。しかし、 – YohanRoth