2012-05-05 138 views
1
SELECT plaka, party_id, sum(inf) i 
    FROM party_sehir 
GROUP BY party_id, plaka 

具有最大值這是我的子查詢的結果是:MySQL的子查詢和子查詢

plaka party_id i 
34  1   42 
34  2   9 
35  1   11 
35  2   26 

從這些結果我想每一個plaka和行party_id的最大i,這樣:

plaka party_id i 
34  1   42 
35  2   26 

我的意思是每個plaka的最大值。我也試過:

SELECT * 
    FROM (SELECT plaka, party_id, sum(inf) i 
      FROM party_sehir 
      GROUP BY party_id, plaka) t1 
GROUP BY plaka 
HAVING i >= max(i) 

它沒有工作;任何人都可以提供幫助嗎?

謝謝

回答

2

它需要一個較長的查詢,像

select plaka,party_id, i 
from 
(SELECT plaka,party_id, sum(inf) i FROM party_sehir 
GROUP BY party_id, plaka) sum_group 
where (i,plaka) in (
SELECT max(i), plaka 
FROM (SELECT plaka,party_id, sum(inf) i FROM party_sehir 
GROUP BY party_id, plaka) t1 group by plaka) 
+0

返回空查詢 –

+0

嘗試組編輯,會你再試一次? – hkutluay

0

請通過您的解決方案

SELECT plaka ,party_id , max(`i`) FROM `party_sehir` GROUP BY `plaka` 

OR

SELECT * FROM `party_sehir` AS s1 WHERE s1.i = (SELECT max(`i`) FROM party_sehir AS 
    s2 WHERE s1.plaka = s2.plaka) GROUP BY `plaka`