使用group by时如何获取max(列数)的行

时间:2013-09-12 10:54:22

标签: mysql sql greatest-n-per-group

当我尝试时:

select * 
from some_table 
group by table_id 
order by timestamp desc;

我获取的特定timestamp(我用于分组)的table_id值最少的行

如何获取特定timestamp的{​​{1}}值最高的行。

我也尝试过:

table_id

给出与第一种情况相同的结果。

谢谢

2 个答案:

答案 0 :(得分:1)

select * 
from your_table t
inner join 
(
   select table_id, max(created_timestamp) as mts
   from your_table
   group by table_id 
) x on x.table_id = t.table_id 
    and x.mts = t.created_timestamp

在MySQL中你可以做到

select *, max(created_timestamp) as mts
from your_table
group by table_id 

但是这不会确保您获得max(created_timestamp)的相应数据,而只能获得table_id

答案 1 :(得分:0)

SELECT * FROM (SELECT * FROM some_table ORDER BY timestamp) t1 GROUP BY t1.id