在BigQuery中,可以使用ROW_NUMBER()和PARTITION BY子句来按日期获取数据集的第一个值,并将给定日期的所有其他值设置为0。
以下是实现这个目标的步骤:
SELECT *
FROM `your_project.your_dataset.your_table`
SELECT *,
ROW_NUMBER() OVER (PARTITION BY date_column ORDER BY date_column) AS row_num
FROM `your_project.your_dataset.your_table`
请确保将上述代码中的date_column
替换为你实际数据集中的日期列名称。
SELECT *
FROM (
SELECT *,
ROW_NUMBER() OVER (PARTITION BY date_column ORDER BY date_column) AS row_num
FROM `your_project.your_dataset.your_table`
) t
WHERE row_num = 1
SELECT *,
CASE WHEN date_column = '给定日期' THEN value_column ELSE 0 END AS new_value
FROM (
SELECT *,
ROW_NUMBER() OVER (PARTITION BY date_column ORDER BY date_column) AS row_num
FROM `your_project.your_dataset.your_table`
) t
WHERE row_num = 1
请将上述代码中的date_column
替换为实际的日期列名称,value_column
替换为实际的数值列名称,并将'给定日期'替换为你要选择的日期。
这样,你就可以在BigQuery中使用ROWID按日期获取数据集的第一个值,并将给定日期的所有其他值设置为0。
领取专属 10元无门槛券
手把手带您无忧上云