前幾天去參加一場面試,面試過程中有被問到一個SQL語句的問題,很遺憾沒有回答上來,結果一面直接挂(問完這個問題後,當我聽到面試官對我說:你有什麼想問我的嗎? 我的内心一片涼涼)。
其實面試官問的問題聽起來很簡單,一張劇目演出表,表中有(劇目ID,劇目名稱,演出機關,票房),問:查詢出每個演出機關票房最高的劇目名稱。(聽起來很簡單吧)
我給面試官的答案是:select name,desp,max(price) from show_plan group by desp;
(name是劇目名稱,desp是演出機關,price是票房)
現在我們執行下看看結果:

第二張圖檔對比第一張有沒有發現name字段資訊不對?
雖然找到的是最大的price,但是與之比對的劇目名稱name卻不對應,而是group by分組後的第一條記錄的基本資訊。
如果使用以下的語句進行查找,則可以傳回正确的結果。