我有一张这样的table(不好,但需要放在这里):
Sessions
user_id | time | registration time | diff | before_reg |is_registration_session
1 | 00:10 | 00:30 | -20 | True | Null
1 | 00:20 | 00:30 | -10 | True | Null
1 | 00:27 | 00:30 | -3 | True | Null
1 | 00:31 | 00:30 | 1 | False | Null
2 | 00:14 | 00:20 | -6 | True | Null
2 | 00:26 | 00:20 | 6 | False | Null
我想要实现的是:我想要找到最小(最大负数)的行 reg_diff
对于每个 user_id
并在列中设置值 is_registration_session
至 True
. 我做这件事的唯一方法是在python中用“update/set”进行for循环,它需要很多时间。
Sessions
user_id | time | registration time | diff | before_reg |is_registration_session
1 | 00:10 | 00:30 | -20 | True | False
1 | 00:20 | 00:30 | -10 | True | False
1 | 00:27 | 00:30 | -3 | True | True
1 | 00:31 | 00:30 | 1 | False | False
2 | 00:14 | 00:20 | -6 | True | True
2 | 00:26 | 00:20 | 6 | False | False
1条答案
按热度按时间w1jd8yoj1#
您可以使用窗口函数来解决此问题。例如:
为了获得更好的性能,可以添加索引:
编辑以更新列
我误解了你的问题。如果要更新现有列,可以执行以下操作: