BigQuery 中使用PIVOT 函數進行查詢自訂
BigQuery 中最近引入的PIVOT 函數可以方便地進行資料重塑,但有時我們可能不知道預先指定特定的列值。本文解決了嘗試動態透視資料時面臨的常見挑戰。
靜態PIVOT 查詢問題
當我們有預先定義的列值時,我們可以使用簡單的PIVOT 查詢像這樣:
SELECT * FROM (SELECT * FROM Produce) PIVOT(SUM(sales) FOR quarter IN ('Q1', 'Q2', 'Q3', 'Q4'))
動態PIVOT查詢解決方案
但是,在現實場景中,我們通常沒有預先可用的列值。為了解決這個問題,我們可以使用以下查詢動態建立 PIVOT 列:
execute immediate ( select '''select * from (select * from `project.dataset.Produce`) pivot(sum(sales) for quarter in ("''' || string_agg(quarter, '", "') || '''")) ''' from (select distinct quarter from `project.dataset.Produce` order by quarter) );
透過動態產生 PIVOT 列,我們可以查詢和重塑數據,而不管已知的列值如何。事實證明,這種方法在處理大型或不斷變化的資料集時特別有用。
以上是如何在 BigQuery 中動態自訂 PIVOT 查詢?的詳細內容。更多資訊請關注PHP中文網其他相關文章!