2015-11-16 54 views
0

我有一個電影列表moviedatabase,包含,標題,發佈年份,評級等等。我想匹配所有評級最高的電影,但是我用max()函數得到的問題是,它只能匹配我所有最高評級的電影中的一個。所以,我希望得到我的所有收視率最高的電影Sql MAX()功能評分電影

對於爲例,這是希望我得到:

title || max(rating) 
Matrix   8 

這就是我想要的:

title || max(rating) 
Matrix   8 
Gladiator  8 
X-Men   8 

我的代碼是:

SELECT title, max(rating) 
FROM movies 
ORDER BY rating DESC 
+0

你很幸運,你甚至有「矩陣」,是收視率最高的遊戲之一。隨着你的查詢,你可以選擇任何標題,無論評級如何。原因:當你說你想要的評級(最高)時,你不會說哪個標題,所以你只是得到一個隨機的標題。 (然後你按照隨機評分排序一個彙總記錄:-) –

+0

啊,好吧,我想我現在就明白了。謝謝你幫助我理解! :) – user3289402

回答

4

使用子查詢:

SELECT title, rating 
FROM movies where rating = (select max(rating) from movies) 
+0

這可能是一個巧合,所有電影的「max(rating)」是8。如果它不同,那麼答案將不正確。我不知道,但我的假設:) –

+0

@RahulTripathi,你確定嗎?你能詳細說明嗎? –

+0

正如我所說,我不確定,只是一個假設。 :P(實際上與這條線混淆了'所以我想得到我所有最高評價的電影') –

0

試試這個:

SELECT * 
FROM movies 
WHERE rating = (SELECT max(rating) 
        FROM movies) 
ORDER BY rating DESC