首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在多行中获取最后一个值

在多行中获取最后一个值
EN

Stack Overflow用户
提问于 2017-03-20 15:30:23
回答 1查看 547关注 0票数 0

我有一个表,用于记录应用程序的活动日志。现在,我必须从实体X获得所有的记录,这些记录已经在一定的日期内发布了。因此,如果一个记录已经发布,后来又没有发布,那么它就不必出现在结果中。

我不知道如何解释它,它是找到每一个的最后一个外观,然后捕获的值是"1“或"0",这取决于我在每种情况下所需要的。

一个简化的示例(实表有更多的字段和更多的数据):

代码语言:javascript
运行
复制
id  user_id date         model main_relation_id field   new_value
1   24      2017-03-21   A     1               publish 1
2   24      2017-03-21   A     2               publish 1
3   24      2017-03-22   A     3               publish 0
4   24      2017-03-22   A     2               update  some text
5   24      2017-03-23   A     1               publish 0
6   24      2017-03-23   A     1               update  some text
7   24      2017-03-24   A     3               publish 1
8   24      2017-03-24   A     2               publish 0
9   24      2017-03-24   A     2               update  some text
10  24      2017-03-25   A     1               publish 1
11  24      2017-03-25   A     2               publish 1
11  24      2017-03-26   A     3               publish 0

我需要得到main_relation_id,按模型和日期进行过滤,所以如果我想从模式A获得2017-03-21和2017-03-24之间发布的所有寄存器,我将得到:

代码语言:javascript
运行
复制
model_main_relation_id
1 
3

如果我想获得在同一日期内未发布的所有寄存器,结果必须是:

代码语言:javascript
运行
复制
model_main_relation_id
2

我怎样才能得到这个结果?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-20 15:44:44

因此,您希望通过main_relation_id筛选最新的状态,无论特定的main_relation_id是在一个时间段内发布(field='publish'; new_value=1)还是未发布(field='publish'; new_value=0)。

由于样本数据的date字段中的日期对于多个记录是相等的,因此我必须假定id字段中的更高值意味着以后的事件。因此,max(id) / main_relation_id将产生最新的均匀记录。

我要做的是为派生表中的特定模型(其中的max(id)'publish' )在日期范围内获得field每个'publish',并将其加入到表中,以了解是否发布了特定的main_relation_id

代码语言:javascript
运行
复制
select table.main_relation_id
from table
inner join
    (select main_relation_id, max(id) as maxid
     from table
     where date>=... and date<=... and `field`='publish' and model='...'
     group by main_relation_id) t on table.id=t.maxid
where table.new_value=1

您需要替换筛选条件而不是...。如果希望获得未发布的数据,请将table.new_value=1标准替换为table.new_value=0

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42907647

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档