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 没有以后的条目。
我有一个包含 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 没有以后的条目。