首頁 >資料庫 >mysql教程 >如何在 BigQuery 中動態自訂 PIVOT 查詢?

如何在 BigQuery 中動態自訂 PIVOT 查詢?

Linda Hamilton
Linda Hamilton原創
2024-12-21 01:42:13193瀏覽

How Can I Dynamically Customize PIVOT Queries in BigQuery?

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn