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.
Untuk bermula, pastikan jadual input anda mempunyai lajur berikut:
Selain itu, anda memerlukan lajur yang mengumpulkan baris yang harus digabungkan menjadi satu baris dalam output.
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 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 |
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!