Oracle SQL当前和先前状态在同一输出记录中

克里希纳

我在下面有一个奇怪的要求,以显示应用程序的当前状态和以前的状态,我的要求在图片中

我试图使用SQL分别获取每个应用程序的最高价值和其余价值,但是我不确定将它们组合的最佳方法。但是,我敢肯定,有更简单的方法可以做到这一点。

将我的查询粘贴到此处。

查询1为我提供了每个应用程序的最新状态:

select application_id, last_updated, application_state
from BELL_APPLICATION_EVENTS where (application_id, last_updated) in (
    select application_id, max(last_updated) as last_updated
    from BELL_APPLICATION_EVENTS
    group by application_id
) order by last_updated desc ;

下面的查询提供了其余状态的数据集,例如“应用程序已完成”和“用户电子邮件已发送”,如图所示。

select *
from BELL_APPLICATION_EVENTS U1
where last_updated < (
      select max(last_updated) 
      from BELL_APPLICATION_EVENTS where application_id = U1.application_id)
order by U1.LAST_UPDATED desc ;

您能否帮助提供一个更简单的选项,以每个应用程序ID在单个记录中获取当前状态和先前状态?

凯文斯基

LAG分析功能非常适合此功能。请使用SQL Fiddle代替图片中的数据来提供测试用例。从文档中:

   SELECT last_name, hire_date, salary,
   LAG(salary, 1, 0) OVER (ORDER BY hire_date) AS prev_sal
   FROM employees
   WHERE job_id = 'PU_CLERK';

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

有什么方法可以在oracle SQL中打印列的先前值和一行中更改的值

来自分类Dev

sql oracle当前月份

来自分类Dev

如何在Oracle SQL中的同一张表上查找和过滤数据

来自分类Dev

SQL Oracle合并记录

来自分类Dev

在同一查询中的oracle sql筛选器

来自分类Dev

Oracle SQL:获取先前的值

来自分类Dev

Oracle SQL-组和明细记录

来自分类Dev

Oracle MAF和Oracle AF

来自分类Dev

Oracle PL/SQL:如何根据同一记录的 ID 字段返回字符串值?

来自分类Dev

Oracle Apex与Oracle SQL Developer

来自分类Dev

在Oracle SQL中对记录对进行分组

来自分类Dev

Oracle SQL:如何从组中查找记录

来自分类Dev

在Oracle SQL Developer中插入汇总记录

来自分类Dev

在Oracle SQL中处理重复记录

来自分类Dev

在Oracle SQL中对记录对进行分组

来自分类Dev

Oracle SQL比较表中的记录

来自分类Dev

oracle中sql输出流的混乱

来自分类Dev

SQL升序和Oracle

来自分类Dev

来自当前记录集中的下一个记录集的ORACLE SQL数据

来自分类Dev

如何在Oracle SQL中检索相同日期的组中的第一条记录和最后一条记录

来自分类Dev

使用先前的行值填充表中的行oracle sql

来自分类Dev

Oracle SQL查询优化输出

来自分类Dev

Oracle中的SQL优化

来自分类Dev

ORACLE SQL中的MAX()

来自分类Dev

更新oracle中的记录批量

来自分类Dev

解释Oracle中的计划输出

来自分类Dev

来自同一表的Oracle SQL MIN和MAX组合

来自分类Dev

sql (oracle) 在同一个 select/where 查询中计数和求和

来自分类Dev

Oracle Instant Client状态