MySQL – 对于列表中的每个ID,选择2个最后一个元素
发布时间:2020-12-11 23:39:08 所属栏目:MySql教程 来源:网络整理
导读:我有一个包含以下架构的表: id,field,time3,'test0',2012-08-293,'test1',2012-08-303,'test2',2012-08-312,2012-08-192,2012-08-202,2012-08-26... 我需要列表中的每个id找到它的最后一个值和前一个值. 例如,如果ids = [2,3],结果应该返回 3,2012-08-31 2,
我有一个包含以下架构的表:
我需要列表中的每个id找到它的最后一个值和前一个值.
如果我需要最后一个值,我会用
我有什么想法可以达到这个目的吗? 最佳答案 如果每个ID号的时间都是唯一的,那么这将有效.
这是如何工作的.此嵌套查询获取每个id的最新时间.
然后,它会嵌入到此查询中,这将为您提供每个id的倒数第二个时间(排除最新时间的行子集的最新时间).
最后,完整查询(如上所示)获取所有行的次数大于或等于第二个最新时间. 如果您的时间不是唯一的 – 也就是说,您有一些行显示相同的ID和时间,则每个ID可能会有两行以上.但是你总会得到最近的两次. 如果某个特定ID只有一行,您将无法获得它. 只有你知道这些限制是否可以接受. 小提琴! http://sqlfiddle.com/#!2/82719/5/0 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |