select t.a,t.b_max,tbl.c 
from tbl,
(select a,max(b) b_max from tbl group by a ) t
on tbl.a=t.a

解决方案 »

  1.   

    现在我要取按用户编号分组汇总后,日期最大的记录,但金额字段也要取出来
    该怎么实现?
    希望得到什么?
    用户编号、总金额、日期最大、日期最大日当日金额?select t1.a,t1.c_sum,t2.b_max,t2.b_c
    (select a,sum(c) c_sum from tb1) t1,
    (select a,max(b) b_max,c b_c from tb1) t2
    where t1.a=t2.a;
      

  2.   


        select x.*
        from tb1 x,(select tb1.a,max(tb1.b)  from tb1 ) y
        where x.a=y.a
        and x.b=y.b
      

  3.   

    select t.a,t.b_max,tbl.c
    from tbl,
    (select a,max(b) b_max from tbl group by a ) t
    on tbl.a=t.a and t.b=t.b_max
      

  4.   

    to ; 
    atao245993(阿涛)  
      希望得到日期最大日当日金额
      

  5.   

    select t.a,t.b_max,tbl.c
    from tbl,
    (select a,max(b) b_max from tbl group by a ) t
    on tbl.a=t.a and tbl.b=t.b_max
      

  6.   

    welyngj(平平淡淡 效率如何啊?数据量很大 几百万条
      

  7.   


    试试这样:
    select t.a,t.b_max,tbl.c 
    from tbl,
    (select a,max(b) b_max from tbl group by a ) t
    where tbl.a=t.a and t.b_max = tbl.b;如果b 是date类型,应该没问题了~~
      

  8.   

    SELECT * FROM (SELECT a,b,c,rank() over(PARTITION BY a ORDER BY b DESC ) AS k FROM tab1 ) WHERE k<=1;
      

  9.   

    select 用户编号, 日期, sum(金额)
    from t1
    groupt by 用户编号,日期
    having (t1.用户编号,t1.日期) in
    (select 用户编号,max(日期)
    from t1
    groupt by 用户编号)