Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Mengubah Baris ke Lajur dalam BigQuery?

Bagaimana untuk Mengubah Baris ke Lajur dalam BigQuery?

Mary-Kate Olsen
Lepaskan: 2025-01-03 22:16:40
asal
258 orang telah melayarinya

How to Pivot Rows into Columns in BigQuery?

Transformasi Pangsi dalam BigQuery: Mengubah Baris ke Lajur

Masalah:

Objektifnya ialah untuk mengubah data daripada baris kepada lajur dalam BigQuery, di mana kunci menjadi nama lajur dan nilai menjadi nilai lajur yang sepadan.

Contoh:

Sebelum:

Key Value
channel_title Mahendra Guru
youtube_id ugEGMG4-MdA
examId 72975611-4a5e-11e5
channel_id UCiDKcjKocimAO1tV
postId 1189e340-b08f

Selepas:

channel_title youtube_id channel_id examId postId
Mahendra Guru ugEGMG4-MdA UCiDKcjKocimAO1tV 72975611-4a5e-11e5 1189e340-b08f

Penyelesaian:

BigQuery pada masa ini kekurangan asli fungsi berputar. Walau bagaimanapun, pendekatan berikut boleh mencapai hasil yang sama:

Langkah 1: Hasilkan Struktur Pertanyaan

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
)
Salin selepas log masuk

Langkah 2: Jalankan Pertanyaan dan Transformasi

  • Jalankan pertanyaan yang dijana daripada Step 1.
  • Salin hasil dan formatkannya seperti berikut (pemformatan tidak diperlukan):
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
Salin selepas log masuk
  • Jalankan pertanyaan yang diubah.

Pertimbangan:

  • Anda boleh melangkau Langkah 1 jika anda boleh membina pertanyaan secara manual dalam Langkah 2.
  • Terdapat pengehadan 10K lajur setiap jadual, jadi pertimbangkan untuk menskalakan set data yang lebih besar.

Atas ialah kandungan terperinci Bagaimana untuk Mengubah Baris ke Lajur dalam BigQuery?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan