Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google bigquery BigQuery问题-使用路径表进行属性建模_Google Bigquery - Fatal编程技术网

Google bigquery BigQuery问题-使用路径表进行属性建模

Google bigquery BigQuery问题-使用路径表进行属性建模,google-bigquery,Google Bigquery,这可能是一个基本问题,但我就是想不出来。可以找到示例数据和查询 查询的目的是找出将信用归于哪个位置。在第一个触摸模型中,最早的触摸导致转换泛光灯。这里22有1个学分,11有2个学分。我不太明白第一个棘手的问题,尤其是最令人不安的部分。比较上一次转换事件。事件时间

这可能是一个基本问题,但我就是想不出来。可以找到示例数据和查询

查询的目的是找出将信用归于哪个位置。在第一个触摸模型中,最早的触摸导致转换泛光灯。这里22有1个学分,11有2个学分。我不太明白第一个棘手的问题,尤其是最令人不安的部分。比较上一次转换事件。事件时间<转换事件。事件时间有什么意义?它们本质上不一样吗?我的意思是,他们两个都来自unnest.*u path.events。事件时间也来自同一个地方。我在这里简直是糊涂透了。非常感谢你的帮助

为了方便起见,我在下面粘贴示例数据和查询:

/*用*\路径替换要查询的特定路径表*/ 选择 选择 属性化事件元数据放置id 从…起 选择 作为STRUCT attributed\u event.placement\u id, 行数按属性事件超序。事件时间ASC作为秩 从…起 UNNESTt.*u路径。事件作为属性化事件 哪里 属性化事件。事件类型!=泛光灯 和属性事件事件时间<转换事件事件时间 和属性_event.event _time> 选择 IFNULL 选择 MAXprev\u转换\u事件。事件\u时间作为事件\u时间 从…起 UNNEST.*.\u path.events作为上一个转换\u事件 哪里 上一个转换事件。事件类型=泛光灯 和上一次转换事件事件时间<转换事件事件事件时间, 0作为属性化\u事件\u元数据 哪里 属性化事件元数据.rank=1作为放置id, 将*算作贷方 从…起 adh.*_路径为t, UNNEST*\u路径。事件作为转换\u事件 哪里 转换\事件。事件\类型=泛光灯 分组 位置标识 有 placement\u id不为空 订购人
credit DESC

比较上一次转换事件.event_时间和转换事件.event_时间的点暗示了分配给每个值的名称

我们想要的是找到两个泛光灯之间的所有事件。然后,您需要检查您的事件不是泛光灯,它位于两个泛光灯之间,即

attributed_event.event_type != "FLOODLIGHT"
attributed_event.event_time < conversion_event.event_time
attributed_event.event_time > MAX(prev_conversion_event.event_time)
当然,所有三个元素prev_conversion、conversion和attributed都是通过附加过滤从相同的事件中获得的,因此您需要从同一列中获取它们

UNNEST(t.*_paths.events) AS prev_conversion_event WHERE ...
UNNEST(t.*_paths.events) AS conversion_event WHERE ...
UNNEST(t.*_paths.events) AS attributed_event WHERE ...
然后,您只需要以适当的顺序组合前面的条件,并为每个用例第一次触摸、最后一次触摸、线性添加适当的等级和信用

我希望这个解释足够清楚。如果有不清楚的地方,请告诉我,以便我能帮助您进一步理解

UNNEST(t.*_paths.events) AS prev_conversion_event WHERE ...
UNNEST(t.*_paths.events) AS conversion_event WHERE ...
UNNEST(t.*_paths.events) AS attributed_event WHERE ...