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-05 18:33:43
asal
485 orang telah melayarinya

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

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

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!

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