目標是選擇名稱最短的城市。簡單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
;
但是,這給了我min的每一個城市(我懷疑)。
然後我試圖group by len
:
SELECT city, min(len)
FROM (select city, length(city) AS len
FROM station
GROUP BY city
)
GROUP BY len
;
,但它給了我另一個錯誤:
ERROR at line 1:
ORA-00979: not a GROUP BY expression
我不明白爲什麼... 我怎麼會選擇分鐘,整列?
這不是MySQL和SQL不服務器 –
您已經標記了與MySQL和Microsoft SQL Server的問題還沒有得到Oracle錯誤消息。你知道你使用的DBMS嗎? –
@DanGuzman哈哈......不!我只是在HackerRank上選擇了這條SQL軌道。我不知道它使用的是什麼DBMS。但謝謝澄清 – YohanRoth