2015-10-22 60 views
0

假設我有一個表,如下所示:顯示多個MAX導致

loan: 
no | credit 
------------- 
L1 | 600 
L2 | 550 
L3 | 800 
L4 | 800 
L5 | 700 

如果我想找到的最大的貸款,我可以簡單地這樣做:

SELECT MAX(l.no) 
FROM loan l 
WHERE l.credit = (SELECT MAX(l.credit) from loan l) 

但這隻會返回我一個貸款。有沒有辦法顯示L3L4而不進行復雜的查詢?

回答

2

爲什麼你在選擇查詢中放置了「MAX」?

--delete the MAX here, or else only one record would be fetched. 
SELECT l.no 
FROM loan l 
WHERE l.credit = (SELECT MAX(l.credit) from loan l) 
+0

是的,當然,只要在3分鐘後發佈與我相同的答案,並獲得upvote。爲什麼不... – fancyPants

+0

我的不好,我在搜索其他問題,涉及找到'第二大'值,它在SELECT中有MAX。 – maregor

+0

@fancyPants糟糕...抱歉,剛纔我在「發佈您的答案」,並沒有注意到您已經發布了答案... – User2012384

2

是的,只是不要使用沒有組的聚合函數,如果你想有多行。

SELECT no, credit 
FROM loan l 
WHERE l.credit = (SELECT MAX(l.credit) from loan l) 
0

使用組由信用

類似下面

SELECT l.no FROM貸款升 WHERE l.credit =(選擇貸款升MAX(l.credit)) 集團通過信用;

+0

您的查詢將只會選擇一條記錄,因爲您使用了聚合.. .. @@「 – User2012384

+0

是的,不要聚合和使用group,希望更好。:) –