gpt4 book ai didi

sql - 带有两个表的 MySQL 时间戳和 GROUP BY

转载 作者:行者123 更新时间:2023-11-29 02:37:49 24 4
gpt4 key购买 nike

我有一个包含 3 个字段的表:

  • ID(不唯一,不是主键)
  • 时间戳
  • 标记

我想为每个不同的 ID 获取最后一个条目,但是当我这样做时
SELECT ID, max(timestamp) from table GROUP BY ID< br/>标记字段错误。

我有另一个包含以下字段的表:

  • ID(唯一,主键)
  • 纬度
  • lng

我想执行相同的查询,但也使用 latlng 字段,但由于我不能执行第一步,所以我不执行知道我应该使用哪种查询。我一直在尝试,但没有成功。

有人能指出我正确的方向吗?非常感谢。

最佳答案

拥有一个不是唯一的 ID 列听起来“出乎意料”,但这个列应该能为您提供预期的行:

SELECT t.id, t.timestamp, MAX( t.marker ) marker,
t2.lat, t2.lng
FROM table t
JOIN (
SELECT id, MAX(timestamp) ts
FROM table
GROUP BY id
) tx ON ( tx.id = t.id AND tx.ts = t.timestamp )
JOIN t2 ON ( t2.id = tx.id )
GROUP BY t.id, t.timestamp

第二个 group by 将确保您只得到一行,以防相同的 idtimestamp 有更多记录。

更新:编辑查询以加入 t2

使用 LEFT JOIN 以防 t1 中的 idt2 中不存在。 latlng 对于该行将是 NULL

关于sql - 带有两个表的 MySQL 时间戳和 GROUP BY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2400313/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com