首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >仅显示已从特定时间框架递增的记录。

仅显示已从特定时间框架递增的记录。
EN

Stack Overflow用户
提问于 2019-04-04 17:55:31
回答 1查看 39关注 0票数 0

在我的数据库中有一个表ITEM_POWER,它包括ID #、READ_TIME和POWER_COUNT。

每次关机时,它都会增加表中的POWER_COUNT +1。一个项目可以有0 POWER_COUNT,如果它从来没有关闭,或者它可以有1000 POWER_COUNT,如果它关闭了1000次。

我想显示的项目,其POWER_COUNT增加了一个特定的时间范围,与POWER_COUNT相比,从最近的时间框架。

目前,我的查询如下所示:

代码语言:javascript
复制
SELECT ID, READ_TIME, POWER_COUNT
FROM ITEM_POWER WHERE READ_TIME BETWEEN '31-MAR-19' and '05-APR-19' 
AND POWER_COUNT > POWER_COUNT BETWEEN READ_TIME OF '24-MAR-19' AND '29-MAR-19'
GROUP BY ID, READ_TIME, POWER_COUNT
ORDER BY ID, READ_TIME, POWER_COUNT

显然,我不相信我的台词“和POWER_COUNT > POWER_COUNT之间的‘24-3月-19’和‘29-3月-19’之间的工作,这正是我想要完成的。我想比较本周的power_counts,与上周相比,如果POWER_COUNT增加,我想显示READ_TIME,和新的power_count。

样本数据:

代码语言:javascript
复制
ID READ_TIME POWER_COUNT
------------ --------- -----------
1234567 09-MAR-19         121
1234567 10-MAR-19         121
1234567 11-MAR-19         121
1234567 12-MAR-19         121
1234567 13-MAR-19         123
1234567 14-MAR-19         130

在上面的数据中,ID 1234567的POWER_COUNT从121个增加到123个。在这个例子中,假设我想将‘13-3月-19’和‘14-3月-19’之间的POWER_COUNT和‘12-3月-19’的POWER_COUNT进行比较。因为POWER_COUNT从那时起就增加了,我希望在我的报告中显示这个ID。如果POWER_COUNT没有从前一个日期的值增加,我想排除它。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-04 18:15:20

根据您的示例数据,您只需要lag()

代码语言:javascript
复制
SELECT ID, READ_TIME, POWER_COUNT
FROM (SELECT IP.*,
             LAG(POWER_COUNT) OVER (PARTITION BY ID ORDER BY READ_TIME) as PREV_POWER_COUNT
      FROM ITEM_POWER IP
     ) IP
WHERE READ_TIME >= DATE '2019-03-21' AND
      READ_TIME < '2019-04-06' AND
      POWER_COUNT <> PREV_POWER_COUNT 
ORDER BY ID, READ_TIME, POWER_COUNT;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55522263

复制
相关文章

相似问题

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