多列上的GROUP BY

时间:2012-09-12 09:23:52

标签: mysql group-by

我的表格如下所示 -

  Id     Reference     DateAttribute1    DateAttribute2
  1      MMM005         2011-09-11       2012-09-10 
  2      MMM005         2012-06-13       2012-09-10 
  3      MMM006         2012-08-22       2012-09-10 
  4      MMM006         2012-08-22       2012-09-11 

我已经处理了id值。我想查询一下,我得到以下结果

  Id     Reference     DateAttribute1    DateAttribute2
  2      MMM005         2012-06-13       2012-09-10 
  4      MMM006         2012-08-22       2012-09-11 

我希望我的结果按引用进行分组,然后按'DateAttribute1'然后'DateAttribute2'进行分组 - DateAttribute1的优先级高于DateAttribute2,如上所示。<登记/> 我应该如何编写查询以上述方式获取结果?

任何解决方案?

4 个答案:

答案 0 :(得分:1)

select max(id),Reference, min(DateAttribute1),max(DateAttribute2)
group by Reference  

答案 1 :(得分:1)

Try it.....
  

选择* from(从id desc选择* from your_table顺序)作为x组   参考

答案 2 :(得分:0)

试试这个:

select * 
from   your_table t
join (
      select Reference,
             min(DateAttribute1) as DateAttribute1,
             max(DateAttribute2) as DateAttribute2
      from   your_table
      group by  Reference
      )a
on   t.Reference=a.Reference
and  t.DateAttribute1=a.DateAttribute1
and  t.DateAttribute2=a.DateAttribute2        

答案 3 :(得分:0)

假设表名为'tbl2'

    select * from (select * from tbl2 order by REFERENCE,DateAttribute1 desc,
DateAttribute2 desc )  as abc group by reference