Tambahan terbaharu BigQuery, fungsi PIVOT, telah mendapat perhatian yang besar kerana keupayaannya mengubah data menjadi format seperti jadual pangsi . Walau bagaimanapun, apabila berhadapan dengan senario di mana nilai lajur pangsi tidak diketahui terlebih dahulu, kaedah konvensional mungkin terbukti tidak berkesan.
Dalam kes sedemikian, pendekatan dinamik menggunakan penggabungan rentetan boleh memintas pengehadan ini. Dengan menjana pertanyaan pangsi secara dinamik berdasarkan nilai berbeza bagi lajur suku, kami boleh mengendalikan sebarang bilangan nilai pangsi yang tidak diketahui dengan berkesan.
Coretan kod berikut menunjukkan pendekatan dinamik ini:
execute immediate ( select '''select * from (select * from `project.dataset.Produce`) pivot(sum(sales) for quarter in ("''' || string_agg(quarter, '", "') || '''")) ''' from (select distinct quarter from `project.dataset.Produce` order by quarter) );
Penjanaan Pertanyaan:
Subquery:
Pendekatan dinamik ini menawarkan beberapa faedah:
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengubah Data Secara Dinamik dalam BigQuery Apabila Nilai Lajur Pangsi Tidak Diketahui?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!