我有这个问题:
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将有数百个条目。我所关心的是每个单元最近的一个。有人能告诉我为什么这不起作用吗?
答案 0 :(得分: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
答案 1 :(得分:0)
只要每个unit_id只有一个activity_id,您的查询就可以正常工作。正如它所写,它将为每个活动ID每单位提供一行。
也许你需要:
选择 创建了Max(l.created)AS, l.unit_id FROM unit_log AS l WHERE.activity_id = 1 - 或者表示活动的任何内容 GROUP BY l.unit_id,l.activity_id