[英]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.