首页 > 解决方案 > SQL:QUERY、IF 语句

问题描述

我有下表,有 3 列

日期实际 车辆ID 停放
2021-06-27 1234 0
2021-06-28 1234 0
2021-06-29 1234 0
2021-06-30 1234 1
2021-07-01 1234 1
2021-07-02 1234 1
2021-07-03 1234 1
2021-07-04 1234 1
2021-07-05 1234 0
2021-07-06 1234 0
2021-07-07 1234 0
2021-06-27 5555 0
2021-06-28 5555 1

基本上是一个包含日期、vehicle_ID 和第三列的表格,它告诉我们汽车是否在一个大院(停放)中。我需要为该表创建第四列,称为:流入。Inflow 需要给我以下输出:

如果汽车在日期 x 停放,但在日期 x - 1 未停放,则流入量 = 1 如果表中可用汽车的第一个日期已经以 1 开头,流入量应为 0。

希望你们能帮帮我。

亲切的问候,

拉扎诺娃

标签: sqlif-statementlookup

解决方案


你似乎在描述:

select t.*,
       (case when Parked = 1 and
                  lag(Parked, 1, 0) over (partition by vehicle_ID order by date_actual) = 0
             then 'true' else 'false'
        end) as inflow
from t;

推荐阅读