我希望对一些营销数据进行匿名化以实现可视化目的。为此,我创建了几个数组,用匿名值替换现有的营销活动名称,例如营销活动 1、营销活动 2、营销活动 3 等...
我使用以下查询在 PostgreSQL 数据库中得到了这个工作:
(ARRAY['Campaign 1'::text, 'Campaign 2'::text, 'Campaign 3'::text, 'Campaign 4'::text, 'Campaign 5'::text])[(floor(random() * 5::double precision) + 1::double precision)] AS campaign_name
Run Code Online (Sandbox Code Playgroud)
这满足了我的需要,它为营销活动的每行数据随机分配数字 1-5。
我尝试在 BigQuery 中模仿这一点,但遇到了麻烦。我将随机切换为兰特,但这不起作用。以前有人做过类似的事情吗?
以下是 BigQuery Standrad SQL(众多选项之一)。只是生成的虚拟数据的一个示例
#standardSQL
WITH `project.dataset.dummy_data` AS (SELECT id FROM UNNEST(GENERATE_ARRAY(1, 100)) id)
SELECT id, campaigns[OFFSET(CAST(5 * RAND() - 0.5 AS INT64))] campaign_name
FROM `project.dataset.dummy_data`, (SELECT ['Campaign 1','Campaign 2','Campaign 3','Campaign 4','Campaign 5'] campaigns)
Run Code Online (Sandbox Code Playgroud)
上面假设由于某种原因您希望设置该数组
下面的版本表明您可以完全避免它
#standardSQL
WITH `project.dataset.dummy_data` AS (SELECT id FROM UNNEST(GENERATE_ARRAY(1, 100)) id)
SELECT id, CONCAT('Campaign ', CAST(1 + CAST(5 * RAND() - 0.5 AS INT64) AS STRING)) campaign_name
FROM `project.dataset.dummy_data`
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2826 次 |
| 最近记录: |