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

Bagaimana untuk Mengubah Baris ke Lajur dalam BigQuery?

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-01-05 18:33:43502semak imbas

How to Transpose Rows into Columns in BigQuery?

Pindahkan Baris ke Lajur dalam BigQuery: Pelaksanaan Pivoting

Mengalih baris ke lajur, juga dikenali sebagai pivoting, membolehkan anda menukar pasangan nilai kunci kepada jadual baharu di mana kunci menjadi nama lajur dan nilai diletakkan dalam sel yang sepadan. Walaupun BigQuery tidak menyokong fungsi pivoting secara asli, anda masih boleh mencapainya menggunakan pendekatan yang mudah.

Struktur Jadual Input

Untuk bermula, pastikan jadual input anda mempunyai lajur berikut:

  • Kunci: Lajur yang menetapkan kategori untuk setiap baris.
  • Nilai: Nilai yang sepadan dengan kunci.

Selain itu, anda memerlukan lajur yang mengumpulkan baris yang harus digabungkan menjadi satu baris dalam output.

Langkah 1: Menukar Data Input kepada Pertanyaan Alih String

Dalam Langkah 1, kami akan mencipta rentetan pertanyaan yang, apabila dilaksanakan, akan menjana pertanyaan yang ditranspose. Laksanakan pertanyaan berikut:

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
) 

Langkah 2: Melaksanakan Pertanyaan Terpindah

Salin hasil daripada Langkah 1 dan laksanakannya sebagai pertanyaan biasa. Ini akan menghasilkan jadual dengan data transposed:

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

Jadual yang terhasil akan mempunyai struktur berikut:

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

Nota

Jika jadual anda mempunyai besar bilangan lajur, anda boleh melangkau Langkah 1 dengan membina pertanyaan yang ditranspose secara manual. Walau bagaimanapun, Langkah 1 menyediakan cara yang cepat dan mudah untuk menjana pertanyaan secara dinamik.

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!

Kenyataan:
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