Cara Menggunakan Modul Crosstab PostrgreSQL

Cara Menggunakan Modul Crosstab Postrgresql



Saat Anda menjalankan pernyataan SELECT untuk mengambil catatan dari tabel PostgreSQL, data dikembalikan dalam bentuk tabel. Bentuk tabel mungkin tidak selalu menjadi yang terbaik untuk membaca data, terutama saat Anda ingin membandingkan nilainya. Pendekatan yang lebih baik adalah mengembalikan catatan sebagai tab silang. Untuk itu, PostgreSQL menawarkan fungsi tabel yang memungkinkan pengguna memanfaatkan fungsi tab silang untuk merepresentasikan data target sebagai tabel pivot. Posting ini menguraikan lebih lanjut tentang cara menggunakan fungsi crosstab PostgreSQL. Baca terus!

Bekerja dengan Modul Crosstab PostgreSQL

Memiliki ruang untuk menentukan bagaimana Anda ingin data Anda direpresentasikan sangatlah berguna. Dengan PostgreSQL, meskipun cara defaultnya adalah memiliki data dalam bentuk tabel, modul crosstab memberi Anda opsi lain. Anda dapat membuat tabel pivot menggunakan kolom “pilih” dari tabel PostgreSQL untuk presentasi yang lebih baik.

Fitur luar biasa ini hadir sebagai ekstensi untuk PostgreSQL versi 8.3. Ekstensi “tablefunc” menawarkan fungsi tab silang, sehingga memungkinkan tabel pivot sebagai kumpulan hasil Anda. Mari kita beri contoh.







Pertama, kita membuat tabel “hasil” dengan tiga kolom menggunakan perintah berikut:





Tabel yang dibuat kosong. Jadi, lanjutkan dan gunakan kueri INSERT untuk menambahkan nilai ke dalamnya. Untuk kasus ini, kami menyisipkan beberapa entri seperti yang ditunjukkan berikut ini:





Jika kita menjalankan pernyataan “pilih”, kita mendapatkan hasil sebagai berikut. Perhatikan bagaimana cara default mengambil catatan menyajikannya dalam bentuk tabel. Kolom digunakan sebagai header dan nilainya masing-masing muncul di baris:



Meskipun pendekatan sebelumnya berhasil pada sebagian besar kasus, ada opsi lain untuk mengambil rekaman yang sama. Untuk kasus ini, kami ingin membuat tabel pivot. Oleh karena itu, kami menggunakan ekstensi “tablefunc” yang disertakan dengan PostgreSQL versi 8.3+.


Jadi, mari buat ekstensi “tablefunc” untuk mengaktifkannya saat kita memanggilnya dalam kueri. Jalankan perintah berikut:

BUAT EKSTENSI JIKA TIDAK ADA fungsi tabel ;

Anda akan mengetahui bahwa ekstensi telah berhasil diaktifkan setelah Anda mendapatkan keluaran seperti yang kita miliki pada gambar sebelumnya.

Untuk fungsi tab silang kita, mari kita buat kolom pertama menjadi fakultas. Di bawahnya adalah berbagai fakultas yang kami miliki di tabel kami. Di samping kolom fakultas, kami memiliki kolom lain yang mewakili nilai berbeda di kolom kategori tabel kami. Terakhir, untuk setiap kategori, kami memiliki jumlah siswa yang mencapai kategori berbeda.

Untuk mencapai tabel pivot seperti itu, gunakan sintaks berikut:

PILIH * DARI CROSSTAB ( 'PILIH kolom1 , kolom2 , kolom3 DARI nama_tabel DIPESAN BERDASARKAN kriteriaa' )

SEBAGAI nama_baru ( kolom1 tipe data , kolom2 tipe data , kolom_n tipe data_ ) ;

Dengan menggunakan contoh tabel yang kita buat, perintah kita terlihat seperti berikut:

Sebelum kita melihat hasilnya, mari kita lihat rincian cara kerja perintah modul crosstab. Pertama, pernyataan SELECT mengembalikan tiga kolom. Kolom pertama diperlakukan sebagai pengidentifikasi baris. Dalam kasus kami, ini adalah kolom “fakultas”. Kolom kedua, yaitu kolom “kategori”, mewakili kategori tabel pivot. Terakhir, kolom ketiga berisi nilai kategori. Dalam kasus kami, ini adalah jumlah siswa di setiap kategori.

Dengan memahami hal tersebut, setelah kita menekan tombol “Enter”, kita mendapatkan tabel pivot sebagai berikut:

Berdasarkan tabel pivot yang dikembalikan, kita dapat melihat bahwa tabel tersebut berfungsi seperti larik 2D dengan kolom pertama dalam pernyataan SELECT adalah larik pertama dan kolom kedua adalah larik kedua dalam dimensi. Kolom ketiga berisi nilai untuk elemen array kedua.

Kesimpulan

Tab silang PostgreSQL bagus untuk merepresentasikan nilai tabel sebagai tabel pivot. Anda harus mengembalikan tiga kolom dalam pernyataan SELECT Anda untuk menggunakan modul tab silang, dan postingan ini telah membagikan contoh praktis tentang cara menggunakannya. Selain itu, kami menjelaskan cara kerja modul crosstab dalam membuat tabel pivot yang menggunakan logika yang sama dengan array 2-D.