SQL-如何仅获取每个ID的当前值和先前值

我有桌子

id, date, value
a,  5/22/2019, 22
b,  5/22/2019, 22
c,  5/22/2019, 22
a,  5/21/2019, 21
b,  5/21/2019, 21
c,  5/21/2019, 21
a,  5/20/2019, 20
b,  5/20/2019, 20
c,  5/20/2019, 20

想要获取当前(最新)和上一个日期的ID和值:

id, date, date-1
a, 22, 21
b, 22, 21
c, 22, 21

到目前为止,我有一些部分,但每行仅需要1个ID(此波纹管为每个ID提供多于1行-对于同一ID,它将在下一行显示5/20日期,这是错误的):

select 
    id, value,
    lag(value, 1, 0) over (partition by id order by date ) as "date - 1"
from 
    table1

如何实现呢?

Zaynul Abadin Tuhin

你可以尝试如下

with cte as
(
select 
    id, value,
    lag(value, 1, 0) over (partition by id order by date ) as "date - 1",
    lag(value, 2, 0) over (partition by id order by date ) as "date - 2",
    row_number() over(partition by id order by date desc) rn
from 
    table1
) select * from cte where rn=1

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何减去 SQL Server 中的当前值和先前值

如何在sql server的当前行中获取前一行的值

获取每个ID的HIGHEST和SECOND HIGHEST值(SQL)

在SQL中如何根据当前行值选择先前的行?

Oracle SQL:获取先前的值

SELECT每个ID仅一个值-SQL Server

如何将读取器中的当前值用作 sql 查询中的参数?

如何将表中的时间值与 SQL 中的当前时间进行比较?

获取 SQL Server 的当前日期和时间

如何在当前记录中使用SQL先前记录的计算值?

javascript-如何使用jquery click仅获取许多html元素的当前索引和值?

SQL:如何获取列中每个不同值的计数?

SQL-如何获取每个不同值的计数?

如何从 SQL SERVER 中的 JSON 中获取每个对象的值

可观察的当前值和先前值

比较循环变量的当前值和先前值

如何在sql中仅显示2个表中的当前和有效数据

每个组的SQL不同值-如何“分组”并获取每个组的不同值列表?

如何比较Math.random()方法生成的当前值和先前的值

如何计算每个月和每年的值的数量?SQL

SQL 获取不同、最大值和 ID

如何在Snowflake-SQL中获取前三个月也出现的当前月份的ID数

SQL:每个ID最常见的值

如何在SQL Server中获取先前的值触发AFTER Update语句

SQL Server-对于字段的每个不同值仅获取一行

如何在同一My SQL查询中获取ID,最小值和最大值?

如何使用SQL获取列中每个分区的第一个和最后一个值

如何在 SQL 和 LINQ 中获取每个员工的第二个最高工资的值?

如何获取变量的当前值?