我有一个表,有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没有后续条目。