1
SELECT plaka, party_id, sum(inf) i 
  FROM party_sehir
 GROUP BY party_id, plaka

これは私のサブクエリであり、結果は次のとおりです。

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

iこれらの結果から、次のように、すべてplakaの行と行の最大値を取得したいと思いparty_idます。

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)

それは機能しませんでした。誰かが助けることができますか?

ありがとうございました

4

2 に答える 2

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 ) 
于 2012-05-05T09:38:22.477 に答える
0

あなたの解決策のためにgroupbyを試してください

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

また

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`
于 2012-05-05T10:39:11.813 に答える