mysql - select 按日期分组的最新值
mysql - select newest value of groups by date
我有一个 table、member_track,用于跟踪会员对网站的访问。从它的外观来看,它跟踪每个负载。
我需要生成 每个 成员的最新访问的结果集。
这是数据示例:
member_id last_accessed
1413 2015-5-26 8:57
1413 2015-5-26 8:54
1413 2015-5-26 8:50
1413 2015-5-26 8:48
1413 2015-5-26 8:20
1413 2015-5-26 8:17
1412 2015-4-30 7:34
1412 2015-4-30 7:33
1411 2015-4-18 15:51
1411 2015-4-18 15:50
输出需要是:
member_id last_accessed
1413 2015-5-26 8:57
1412 2015-4-30 7:34
1411 2015-4-18 15:51
(last_accessed
是一个 datetime
字段)
我用 group by 和 max 尝试了各种方法,但没有任何成功。我该如何处理?
您只需要查询 max(last_accessed)
每个(即分组依据)member_id
:
SELECT member_id, max(last_accessed)
FROM member_track
GROUP BY member_id
您可以尝试以下查询。
SELECT member_id,last_accessed
FROM member_track
WHERE last_accessed in(
SELECT Max(last_accessed)
FROM member_track
GROUP BY member_id)
我有一个 table、member_track,用于跟踪会员对网站的访问。从它的外观来看,它跟踪每个负载。
我需要生成 每个 成员的最新访问的结果集。
这是数据示例:
member_id last_accessed 1413 2015-5-26 8:57 1413 2015-5-26 8:54 1413 2015-5-26 8:50 1413 2015-5-26 8:48 1413 2015-5-26 8:20 1413 2015-5-26 8:17 1412 2015-4-30 7:34 1412 2015-4-30 7:33 1411 2015-4-18 15:51 1411 2015-4-18 15:50
输出需要是:
member_id last_accessed 1413 2015-5-26 8:57 1412 2015-4-30 7:34 1411 2015-4-18 15:51
(last_accessed
是一个 datetime
字段)
我用 group by 和 max 尝试了各种方法,但没有任何成功。我该如何处理?
您只需要查询 max(last_accessed)
每个(即分组依据)member_id
:
SELECT member_id, max(last_accessed)
FROM member_track
GROUP BY member_id
您可以尝试以下查询。
SELECT member_id,last_accessed
FROM member_track
WHERE last_accessed in(
SELECT Max(last_accessed)
FROM member_track
GROUP BY member_id)