簡體   English   中英

我想在 BigQuery 中將多條記錄合並為一條記錄

[英]I want to merge multiple records into a single record in BigQuery

我想在 BigQuery 中將多條記錄合並為一條記錄

pdt status            dt      
a   Inctive         2022/02/07
a   Inctive         2022/02/08
a   Active          2022/02/10  
a   Active          2022/02/11
a   Active          2022/02/15  
a   Active          2022/02/16
a   Active          2022/02/17
b   Active          2022/03/13  
b   Active          2022/03/14

Output

pdt status          start_dt    end_dt
a   Inactive        2022/02/07  2022/02/08
a   Active          2022/02/10  2022/02/11
a   Active          2022/02/15  2022/02/17
b   Active          2022/03/13  2022/03/14

我想知道如何在 bigquery 中對 function 期間進行規范化?

您可以考慮以下。

SELECT pdt, status, MIN(dt) AS start_dt, MAX(dt) AS end_dt FROM (
  SELECT *, UNIX_DATE(PARSE_DATE('%Y/%m/%d', dt)) - COUNT(1) OVER (PARTITION BY pdt ORDER BY dt) AS part
    FROM sample_data
) GROUP BY pdt, status, part
-- ORDER BY 1, 3;

查詢結果

在此處輸入圖像描述

暫無
暫無

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

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