TSQL-比较两列的值并将 0 或 1 添加到相同 table 的另一列

TSQL-Compare values of two columns and add 0 or 1 to another column of the same table

我有一个包含 3 列的 table(用户 ID、点击数、输入和输出)。

Userid // 命中 // In&Out

12 // 2022-05-2510:12:53.000

12 // 2022-05-2514:17:43.000

17 // 2022-05-2509:11:28.000

17 // 2022-05-2517:07:10.000

18 // 2022-05-2508:54:31.000

18 // 2022-05-2517:01:31.000

我希望根据每个UserID比较Hit列(日期和时间)的值后,Column In&Out为0或1,较早的日期时间为0,最新的日期时间为1

例如

Userid // 命中 // In&Out

12 // 2022-05-25 10:12:53.000 // 0

12 // 2022-05-25 14:17:43.000 // 1

17 // 2022-05-25 09:11:28.000 // 0

17 // 2022-05-25 17:07:10.000 // 1

18 // 2022-05-25 08:54:31.000 // 0

18 // 2022-05-25 17:01:31.000 // 1

一个简单的铅测试就会给出您要求的结果

SELECT *,
        CASE WHEN LEAD(HITS) OVER (PARTITION BY ID ORDER BY HITS) IS NULL THEN 1 ELSE 0 END 'IN&OUT'  
FROM T

本例中的 Null 表示此 ID 没有以后的条目。