在 BigQuery 中生成一列随机日期

Posted

技术标签:

【中文标题】在 BigQuery 中生成一列随机日期【英文标题】:Generate a column of random dates in BigQuery 【发布时间】:2019-11-17 23:36:54 【问题描述】:

如何使用 bigquery 创建一个包含随机选择的日期的新列?这与this question 密切相关,但日期应该是随机的,并且不包含任何内容。理想情况下,它只是给定范围内的一列 ID 和一列随机日期:

ID    Date
1     2010-01-01
2     2012-03-31
3     2011-07-11
4     2015-06-09

这是easier on regular sql,但我无法让这种方法与 bigquery sql 语法一起使用。

【问题讨论】:

【参考方案1】:

以下是 BigQuery 标准 SQL

#standardSQL
WITH parameters AS (
  SELECT 100 ids_count, DATE '2010-01-01' start_date, DATE '2020-12-31' finish_date
)
SELECT id, DATE_FROM_UNIX_DATE(CAST(start + (finish - start) * RAND() AS INT64)) random_date
FROM parameters, 
UNNEST(GENERATE_ARRAY(1, ids_count)) id,
UNNEST([STRUCT(UNIX_DATE(start_date) AS start, UNIX_DATE(finish_date) AS finish)])
-- ORDER BY id

【讨论】:

以上是关于在 BigQuery 中生成一列随机日期的主要内容,如果未能解决你的问题,请参考以下文章

BigQuery - 将多列连接成一列以获取大量列

如何在 BigQuery 中生成日期系列并为缺失的销售数据填充零

如何在Oracle中生成一周的第一天,一周的最后一天和两个日期之间的周数

sql [BigQuery - Facebook产品目录]查询para obtenerelcatálogodeproductos de Kichink。 #facebook #bigqu

在熊猫中生成给定范围内的随机日期

如何将excel中的三列数值转换成一列日期