将条件应用于特定组:SQL

时间:2020-02-03 11:42:31

标签: sql google-analytics google-bigquery

当前,我必须在BigQuery for Google Analytics(分析)中提供以下格式的报告:

客户端ID,会话ID,来源,中等会话号

因此,结果必须是一个表,其中每个 ClientID,SessionNumber 包含按日期排序的事件发生的顺序

问题是在一个会话期间发生转换。因此,特定 ClientID SessionNumber 值不会在发生转换的事件时结束。 [例如,ClientID = 1中有30个事件,而转换发生在第15个事件(从SessionNumber正常发送)]

我的问题是,当发生转换时,如何删除 SessionNumber 中的序号之后的表中的所有数据? 这样就可以查看何时发生了lastclick并查看辅助转换? 如何为特定的数据组应用条件(在这种情况下,对于每个 client ID -请记住,对于每个 ClientID ,我们都有特定数量的事件和相应的序号)

示例:

Client ID | SessionID | Source | Medium | SesionNumber | Goal Achieved (1 if yes) 
        1 |        456| google |   cpc  |            1 |                       0
        1 |        456| google |   cpc  |            2 |                       0
        1 |        456| google |   cpc  |            3 |                       1
        1 |        456| google |   cpc  |            4 |                       0
        2 |        234|  ...       ...             ...                       ...
       ...         ...   ...       ...             ...                       ...

因此,当在每个 ClientID 内部进行转换时,我必须摆脱 SessionNumber 之后的所有行(转换是在实现目标之后发生的-我已经创建了这样的代码)。标准SQL是否有任何语法可以为每个ClientID 创建这样的条件?

问题在于,一次会话内部可能会发生转换,并且该用户也可以执行其他操作,但是我只需要从会话开始到发生转换为止的记录

我想返回该表(来自示例):

Client ID | SessionID | Source | Medium | SesionNumber | Goal Achieved (1 if yes) 
        1 |        456| google |   cpc  |            1 |                       0
        1 |        456| google |   cpc  |            2 |                       0
        1 |        456| google |   cpc  |            3 |                       1
        2 |        234|  ...       ...             ...                       ...
       ...         ...   ...       ...             ...                       ...

0 个答案:

没有答案