SQL - 需要在单个表中标识多个组中的最新条目
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL - 需要在单个表中标识多个组中的最新条目相关的知识,希望对你有一定的参考价值。
我查看了Selecting latest entries for distinct entry,但我很挣扎,因为我在结果集中需要更多关于表格的数据。
我们围绕几组产品创建规则,我们需要为每个CLASS_ID拉出最新规则。最新消息,我指的是最新的entry_id。
ENTRY_ID .... TIMESTAMP .... USER_ID .... ....类标识码PRICE_POINT 1 ........... 3/2/2018 3:40 ... 1 .......... 53 ....... 50 2 ........... 3/2/2018 3:56 ... 1 .......... 12 ....... 50 3 ........... 3/2/2018 4:56 ... 1 .......... 24 ....... 22 4 ........... 3/2/2018 4:57 ... 1 .......... 564 ..... 22 5 ........... 3/3/2018 4:08 ... 1 .......... 53 ....... 99 6 ........... 3/3/2018 4:09 ... 1 .......... 53 ....... 99
目标是获得EACH类的最新时间戳或条目(它们应该相互对应)。
所需的输出是(按类排序):
TIMESTAMP .... USER_ID .... ....类标识码PRICE_POINT 3/2/2018 3:56 ... 1 .......... 12 ....... 50 3/2/2018 4:56 ... 1 .......... 24 ....... 22 3/3/2018 4:09 ... 1 .......... 53 ....... 99 3/2/2018 4:57 ... 1 .......... 564 ..... 22
我花了几个小时看这个,看起来很简单,但我一直在努力找到一种方法来解决这个问题。
不会有很多增长,最多几千行,所以我正在寻找简单的代码来理解和学习过度的性能。
谢谢!
凯尔
这是一种常用方法:
select t.*
from t
where t.entry_id = (select max(t2.entry_id) from t t2 where t2.class_id = t.class_id);
有了(class_id, entry_id)
的索引,这通常是最快的解决方案。
以上是关于SQL - 需要在单个表中标识多个组中的最新条目的主要内容,如果未能解决你的问题,请参考以下文章