我需要为每个唯一用户获得重复数据删除转换。此处的规则是,我需要一列,该列仅获取一天之内进行的首次转化的次数。因此,我可以在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
答案 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;
(在MySQL中显示的演示只是出于说明目的)
假设在逻辑上Deduped
列对于该组中的任何转化次数始终为1,除非根本没有发生转化为零的转化。