假设我们有一个包含以下数据的数据集:
timestamp,col1
1533286270,1
1533286271,2
1533286272,3
1533286273,4
1533286274,5
Run Code Online (Sandbox Code Playgroud)
我想获得之前的col1值col1_prev以便能够比较它们。结果应该是一样的pandas.shift(-1)。
如何使用纯 SQL 查询实现此功能?
查询结果应如下所示:
timestamp,col1,col1_prev
1533286270,1,NULL
1533286271,2,1
1533286272,3,2
1533286273,4,3
1533286274,5,4
Run Code Online (Sandbox Code Playgroud)
使用该lag()函数是一种方式:
WITH
input AS (
SELECT
1533286270 AS timestamp,
1 AS col1
UNION ALL
SELECT
1533286271 AS timestamp,
2 AS col1
UNION ALL
SELECT
1533286272 AS timestamp,
3 AS col1
UNION ALL
SELECT
1533286273 AS timestamp,
4 AS col1
UNION ALL
SELECT
1533286274 AS timestamp,
5 AS col1 )
SELECT
timestamp,
col1,
LAG(col1) OVER(ORDER BY col1) AS col1_prev
FROM
input
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
788 次 |
| 最近记录: |