繁体   English   中英

使用group by时如何获取具有max(of of column)的行

[英]How to get rows with max(of a column) when using group by

当我尝试:

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

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

如何获取具有该特定table_id最高timestamp值的行。

我也尝试过:

select * 
from some_table 
group by table_id 
having max(timestamp) 
order by timestamp desc;

其结果与第一种情况相同。

谢谢

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM