Rumah > pangkalan data > tutorial mysql > Bagaimanakah Saya Boleh Mengubah Data Secara Dinamik dalam BigQuery Apabila Nilai Lajur Pangsi Tidak Diketahui?

Bagaimanakah Saya Boleh Mengubah Data Secara Dinamik dalam BigQuery Apabila Nilai Lajur Pangsi Tidak Diketahui?

Susan Sarandon
Lepaskan: 2024-12-23 07:05:03
asal
776 orang telah melayarinya

How Can I Dynamically Pivot Data in BigQuery When Pivot Column Values Are Unknown?

Menggunakan Fungsi PIVOT BigQuery Secara Dinamik

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

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

Bagaimana ia Berfungsi

  1. LAKSANAKAN SEGERA: Pernyataan ini melaksanakan rentetan pertanyaan yang dijana secara dinamik.
  2. Penjanaan Pertanyaan:

    • pilih '''pilih * daripada (pilih * daripada project.dataset.Produce): Ambil data daripada jadual Produce sebagai a subquery.
    • pivot(jumlah(jualan) untuk suku tahun ("''': Mulakan operasi PIVOT, menyatakan jumlah jualan untuk lajur suku.
    • string_agg(suku, ' ", "'): Gabungkan nilai suku yang berbeza secara dinamik ke dalam rentetan dipisahkan koma yang disertakan dengan petikan berganda untuk berfungsi sebagai pangsi senarai lajur.
    • "'''")): Lengkapkan klausa PIVOT.
  3. Subquery:

    • (pilih suku yang berbeza daripada project.set data. Hasilkan susunan mengikut suku): Dapatkan nilai suku yang berbeza dalam tertib menaik untuk memastikan pangsi yang betul susunan lajur.

Kelebihan

Pendekatan dinamik ini menawarkan beberapa faedah:

  • Skalabiliti: Ia dengan lancar mengendalikan bilangan nilai lajur pangsi sewenang-wenangnya, memberikan fleksibiliti dan kemudahan gunakan.
  • Keringkas: Penggabungjalinan rentetan membenarkan pembinaan pertanyaan PIVOT dalam satu pernyataan, mempertingkatkan kejelasan kod.

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!

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