mysql - 在一列上不同但检索所有列

标签 mysql select group-by distinct

我有一个具有以下语法的表格:

ID, VALUE, TIMESTAMP

(ID,TIMESTAMP) 是主键,因此每个 ID 可能有多行。有 5000 个唯一 ID。

我想检索每个 ID 的最新条目。

我的天真的做法是: SELECT * FROM 表 ORDER BY TIMESTAMP DESC LIMIT 5000;

在大多数情况下,这会给出正确的结果,但不能保证。

因为表中可能有 100k 到 500k 条目,所以我想考虑性能。

你有什么建议?

最佳答案

试试这个

SELECT ID, VALUE, TIMESTAMP 
  FROM table 
  GROUP BY ID 
  HAVING MAX(TIMESTAMP)
  ORDER BY TIMESTAMP DESC ;

或者

SELECT ID, VALUE, TIMESTAMP 
  FROM table 
  GROUP BY ID 
  ORDER BY TIMESTAMP DESC ;

关于mysql - 在一列上不同但检索所有列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38726820/

相关文章:

mysql - 如何选择给定表结构中所做的最新更改?

SQL:内部联接根据条件返回一行

sql server group by datetime 截止点 10 :00am

r - 使用自定义中断来剪切日期向量

mysql - cakephp 1.3 模型中的交叉连接表

mysql - 哪个查询被优化

mysql - 如何在存储过程中使用 CAST as SIGNED 来解决 BIGINT - MYSQL?

php - 在 Mysql 上更新 BLOB 缩略图时出现问题

sql - 加入两个查询/选择语句

mysql - 在 MySQL/SQL 中对同一行进行条件计数