【问题标题】:mysql subquery and having max value of subquerymysql子查询并具有子查询的最大值
【发布时间】:2012-05-05 09:29:44
【问题描述】:
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

从这些结果中,我想获得每个 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)

没用;有人可以帮忙吗?

谢谢

【问题讨论】:

    标签: mysql subquery max having


    【解决方案1】:

    它需要更长的查询,比如

    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 ) 
    

    【讨论】:

      【解决方案2】:

      请尝试 group by 以获得您的解决方案

      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`
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-01-21
        • 1970-01-01
        • 2018-05-18
        • 2012-05-12
        • 2011-08-29
        • 1970-01-01
        相关资源
        最近更新 更多