首页 > 解决方案 > 在 SQL 中创建聚合列,其值取决于前一行 - MySQL 5

问题描述

我想就以下查询获得一些帮助:我有以下使用 python pandas 创建的数据框:

data = pd.DataFrame({'user_id':[1,1,1,2,2],'event':[1,0,1,1,0]})

输出是:

user_id event
 1      1
 1      0
 1      1
 2      1
 2      0

现在,我通过以下方式创建了第三列:对于每个 user_id group,如果 event 的先前值为 0,则写入 1,否则写入 0:

g = data.groupby('user_id')
data['third_column']=g['event_id'].transform(lambda x: np.where((x.shift(1)==0),1,0))

我得到

user_id event   third_column
 1      1       0
 1      0       0
 1      1       1
 2      1       0
 2      0       0

如何在 MySQL 5 中重现相同的输出?

谢谢你的帮助

标签: sqlaggregate-functionsmysql-pythonmysql5

解决方案


推荐阅读