通过24小时窗口获得每位唯一身份用户的重复数据删除转化

时间:2019-03-29 04:59:17

标签: google-bigquery

我需要为每个唯一用户获得重复数据删除转换。此处的规则是,我需要一列,该列仅获取一天之内进行的首次转化的次数。因此,我可以在3/03/2019触发10次转换,但“ Deduped”列将仅计入1的计数。该代码应可扩展用于TB的数据。

这是我在BigQuery中的原始数据:

Date    User_ID Total_Conversions
3/3/19  1234    1
3/3/19  1234    1
3/3/19  1234    1
3/3/19  12      1
3/3/19  12      1
3/4/19  1234    1
3/4/19  1234    1
3/5/19  1       1
3/6/19  1       0

我希望最终输出看起来像这样:

Date     User_ID   Total_Conversions   Deduped
3/3/19   1234          3                   1
3/3/19   12            2                   1
3/5/19   1             1                   1
3/4/19   1234          2                   1
3/6/19   1             0                   0

1 个答案:

答案 0 :(得分:2)

我认为您只需要在这里进行基本的GROUP BY查询即可。

SELECT
    date,
    User_ID,
    SUM(Total_Conversions) AS Total_Conversions,
    CASE WHEN SUM(Total_Conversions) > 0 THEN 1 ELSE 0 END AS Deduped
FROM yourTable
GROUP BY
    date,
    User_ID;

enter image description here

Demo

(在MySQL中显示的演示只是出于说明目的)

假设在逻辑上Deduped列对于该组中的任何转化次数始终为1,除非根本没有发生转化为零的转化。