我有一个包含以下结构和数据的mysql表。我想在任何id上显示最后插入的记录。
id lc_counter lc_timestamp
1 15 2013-03-01 11:54:43
1 13 2013-03-01 11:48:56
10 7 2013-03-01 11:54:43
10 5 2013-03-01 11:48:56
100 5 2013-03-01 11:54:43
100 3 2013-03-01 11:54:43
SELECT inv_id, lc_counter, lc_timestamp
FROM link_counter
group by inv_id
order by inv_id asc, lc_timestamp desc
我想得到这个结果:
id lc_counter lc_timestamp
1 15 2013-03-01 11:54:43
10 7 2013-03-01 11:54:43
100 5 2013-03-01 11:54:43
答案 0 :(得分:2)
Select link_counter.lc_counter, MAX(link_counter.lc_timestamp)
from link_counter group by link_counter.id
答案 1 :(得分:0)
SELECT
inv_id, lc_counter, lc_timestamp
FROM
link_counter A
WHERE
lc_counter >= ALL(
SELECT
lc_counter
FROM
link_counter B
WHERE
B.inv_id = A.inv_id
)
ORDER BY
1
暂时没有这样做,但这应该有用。
答案 2 :(得分:0)
如果您对特定lc_timestamp
没有2条相同的id
条记录,则以下内容会为您提供所需的确切结果。
select lc.id, lc.lc_counter, lc.lc_timestamp from link_counter lc inner join
(select id, max(lc_timestamp) as lc_timestamp from link_counter group by id) as lc2
on lc.id = lc2.id and lc.lc_timestamp = lc2.lc_timestamp order by lc.id asc, lc.lc_timestamp desc;;
group by
本身不会返回匹配的lc_counter
。因此,需要手动匹配。请参阅此fiddle。