我的列是一個(gè)由逗號(hào)分隔的值字符串(沒有特定順序):
event_list
2,100,101,102,103,104,105,106,110,114,121,126,152,185,191,524,150,198,158,111,20
100,101,102,103,104,110,114,121,126,152,175,185,191,150,198,158,111,123,10091
在這些值中,我只對(duì)1、2、10、11、12、13、14和20感興趣。其余的都無關(guān)緊要。例如2-“產(chǎn)品視圖”和12-“添加到購物車”。
所以我想做一些
CASE WHEN 2 IN event_list THEN 1 ELSE 0 END as product_view flag,
CASE WHEN 12 IN event_list THEN 1 ELSE 0 END as add_to_cart_flag
...
但由于它是SQL而不是Python,我認(rèn)為上面的方法是不可能的,因此我試圖找出如何做到這一點(diǎn)。我認(rèn)為使用regex不會(huì)有什么幫助,因?yàn)椤?20”也會(huì)包含“2”。
STRING_SPLIT
不是最佳解決方案,因?yàn)閿?shù)據(jù)已經(jīng)是900Bil行。
有幾種方法
or
如果您實(shí)際在900Bil行上運(yùn)行此操作,那么這兩個(gè)行都會(huì)很慢。我猜不出哪一個(gè)會(huì)“贏”——你需要同時(shí)測(cè)試這兩個(gè)。