SELECT role_id,dt as date_pre,lead(dt,1)over (partition by role_id) as date_rete FROM ( select distinct role_id,dt from src_house_day order by role_id,dt) WHERE dt between 20230427 and 20230503 ;有什么错误
时间: 2023-06-12 09:03:39 浏览: 94
Untitled3.rar_As One_grouping_low-level feature_novel detection_
这个 SQL 语句中存在语法错误,正确的语法应该是:
```
SELECT
role_id,
dt as date_pre,
LEAD(dt, 1) OVER (PARTITION BY role_id ORDER BY dt) as date_rete
FROM
(SELECT DISTINCT role_id, dt FROM src_house_day WHERE dt BETWEEN 20230427 AND 20230503) t
ORDER BY
role_id,
dt;
```
主要的修改包括:
1. 在子查询后面增加了别名 t;
2. 在 LEAD 函数中增加了 ORDER BY 子句;
3. 最后整个查询结果需要按照 role_id 和 dt 排序。
这样写应该可以得到正确的结果。
阅读全文