簡體   English   中英

在 BigQuery 中生成一列隨機日期

[英]Generate a column of random dates in BigQuery

我將如何 go 關於使用 bigquery 創建一個隨機選擇日期的新列? 這與這個問題密切相關,但日期應該是隨機的,並且不能加入任何東西。 理想情況下,它只是給定范圍內的一列 ID 和一列隨機日期:

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

在常規 sql 上更容易,但我無法讓這種方法與 bigquery sql 語法一起使用。

以下是 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 上,在限定時間 window 上使用RAND function:

-- Parameters
DECLARE start_dt DEFAULT DATE '2010-01-01'; -- Lower limit
DECLARE end_dt DEFAULT date '2020-12-31'; -- Upper limit
DECLARE n DEFAULT 30; -- Quantity of random dates

-- Random dates
SELECT DATE_ADD(start_dt , INTERVAL CAST(DATE_DIFF(end_dt, start_dt, DAY)*RAND() AS INT64) DAY) random_date
FROM UNNEST(GENERATE_ARRAY(1, n));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM