1

我有这个查询:

  SELECT
  Max(l.created) AS created,
  l.unit_id,
  l.activity_id AS Active
  FROM unit_log AS l
  GROUP BY l.unit_id, l.activity_id

我需要但似乎无法获得的是每个 unit_id 的 MAX() 行。我需要查询中的 unit_id,因为我要加入另一个表。创建的列是时间戳。

每个 unit_id 将有数百个条目。我所关心的是每单位最近的一个。有人可以告诉我为什么这不起作用吗?

4

2 回答 2

3
SELECT l.unit_id, l.created, l.activity_id
FROM unit_log l
JOIN (SELECT unit_id, MAX(created) AS maxc
      FROM unit_log
      GROUP BY unit_id) m
ON l.unit_id = m.unit_id AND l.created = m.maxc
于 2013-10-03T23:50:50.637 回答
0

只要每个unit_id 只有一个activity_id,您的查询就可以正常工作。正如它所写的,它会为每个活动 ID 的每个单元提供一行。

也许你需要:

SELECT Max(l.created) AS created, l.unit_id FROM unit_log AS l WHERE l.activity_id = 1 -- 或任何指示活动的 GROUP BY l.unit_id, l.activity_id

于 2013-10-03T23:50:41.987 回答