V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
V2EX  ›  cau1iflower  ›  全部回复第 1 页 / 共 1 页
回复总数  2
2022 年 12 月 7 日
回复了 wloverine 创建的主题 程序员 Hive SQL 题求教
@cau1iflower
```
SELECT item_id, price,
-- 如果当前价格和前一个价格不同,那么这个价格的起始时间就是当前日期。
-- 否则,起始时间就是前一个价格的起始时间。
CASE WHEN price != LAG(price) OVER (PARTITION BY item_id ORDER BY date)
THEN date
ELSE LAG(start_date) OVER (PARTITION BY item_id ORDER BY date)
END AS start_date,
-- 如果当前价格和后一个价格不同,那么这个价格的结束时间就是后一个价格的起始时间。
-- 否则,这个价格的结束时间就是 NULL 。
CASE WHEN price != LEAD(price) OVER (PARTITION BY item_id ORDER BY date)
THEN LEAD(start_date) OVER (PARTITION BY item_id ORDER BY date)
ELSE NULL
END AS end_date
FROM prices

```
2022 年 12 月 7 日
回复了 wloverine 创建的主题 程序员 Hive SQL 题求教
ChatGPT 了解一下
About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5689 Online   Highest 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 47ms · UTC 01:37 · PVG 09:37 · LAX 18:37 · JFK 21:37
♥ Do have faith in what you're doing.