tsql—比较两列的值,并在同一表的另一列上添加0或1



我有一个表,有3列(Userid, Hits, In&Out)。

Userid//Hits//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//22-05-2517:01:31.000

我希望列In&Out根据每个UserID比较Hit列(date&time)的值后获得0或1,较早的datetime将为0,最新的将为1

Userid//Hits//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没有后续条目。

最新更新