2017-08-10 42 views
0

我最近開始學習sql查詢,但我遇到了一些問題。 我有這兩個表在這裏:SQL查詢 - 如何顯示最常見的值

http://i.imgur.com/2m0VuoE.png

MembersLikesBirdEncounter(birdID是foriegn關鍵從上面的表格鳥此處引用) http://i.imgur.com/0cWlG94.png

我試圖顯示最常見birdID值從表MembersLikesBirdEncounter,這是234.下面是我提出的查詢似乎不是工作國王。我究竟做錯了什麼?

SELECT  m.birdID, COUNT(m.birdID) 
FROM  MembersLikesBirdEncounter m, Birds b 
WHERE  b.birdID = m.birdID 
GROUP BY m.birdID 
ORDER BY m.birdID DESC 
LIMIT  1; 

我所要的輸出是

birdID 
------ 
234 

回答

0

不是很難...

相反:在FROM子句中

 GROUP BY Count(m.birdID) DESC 
+0

嗨,感謝您的輸入,但我似乎無法得到它仍然工作? –

+0

我替換了組,並通過與您的聲明進行排序 –

+0

單獨留下分組子句:只需更改'ORDER BY'子句即可。 – Curt

0

決不使用逗號。 始終使用使用正確的,明確的JOIN語法。然後,您的查詢的問題是ORDER BY列。你想通過計數命令:

SELECT m.birdID, COUNT(m.birdID) 
FROM MembersLikesBirdEncounter m JOIN 
    Birds b 
    ON b.birdID = m.birdID 
GROUP BY m.birdID 
ORDER BY COUNT(jm.birdID) DESC 
LIMIT 1; 

然後 - 假設birdId通常是指是指有效的鳥類 - 的JOIN是沒有必要的。這應該是足夠的:

SELECT m.birdID, COUNT(m.birdID) 
FROM MembersLikesBirdEncounter m 
GROUP BY m.birdID 
ORDER BY COUNT(jm.birdID) DESC 
LIMIT 1; 
+0

嗨,謝謝你的回答。有什麼方法只顯示birdID行嗎?我不希望系統也顯示計數行 –

+0

@ katetango。 。 。只需從SELECT中移除COUNT(m.birdID)。 –

+0

謝謝你的幫助 –