將行轉置為列(也稱為透視),讓您將鍵值對轉換為新表其中鍵成為列名稱,值放置在對應的儲存格中。雖然 BigQuery 本身不支援旋轉函數,但您仍然可以使用簡單的方法來實現此目的。
首先,請確保您的輸入表具有下列:
此外,您將需要一個欄位來將應合併為單一行的行分組輸出中的行。
中第 1 步,我們將建立一個查詢字串,執行時將產生轉置查詢。執行下列查詢:
SELECT 'SELECT id, ' + GROUP_CONCAT_UNQUOTED( 'MAX(IF(key = "' + key + '", value, NULL)) as [' + key + ']' ) + ' FROM yourTable GROUP BY id ORDER BY id' FROM ( SELECT key FROM yourTable GROUP BY key ORDER BY key )
複製步驟 1 的結果並將其作為常規查詢執行。這將產生一個包含轉置資料的表:
SELECT id, MAX(IF(key = "channel_id", value, NULL)) AS [channel_id], MAX(IF(key = "channel_title", value, NULL)) AS [channel_title], MAX(IF(key = "examId", value, NULL)) AS [examId], MAX(IF(key = "postId", value, NULL)) AS [postId], MAX(IF(key = "youtube_id", value, NULL)) AS [youtube_id] FROM yourTable GROUP BY id ORDER BY id
產生的表將具有以下結構:
id | channel_id | channel_title | examId | postId | youtube_id |
---|---|---|---|---|---|
1 | UCiDKcjKocimAO1tV | Mahendra Guru | 72975611-4a5e-11e5 | 1189e340-b08f | ugEGMG4-MdA |
2 | UCODeKM_D6JLf8jJt | Ab Live | 72975611-4a5e-11e5 | 0c3e6590-afeb | 3TNbtTwLY0U |
如果您的表有一個很大的列數,您可以透過手動建立轉置查詢來跳過步驟1。然而,第 1 步提供了一種快速且方便的方法來動態產生查詢。
以上是如何在 BigQuery 中將行轉置為列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!