PostgreSQL

Pivot Dengan/Tanpa Tablefunc

Pivot Dengan/Tanpa Tablefunc

Tabel Pivot adalah alat yang ampuh untuk memperkirakan, menyusun, dan meninjau data untuk menemukan pola dan tren dengan lebih mudah. Tabel Pivot dapat digunakan untuk menggabungkan, mengurutkan, menyusun, mengatur ulang, mengelompokkan, total, atau rata-rata data dalam kumpulan data untuk benar-benar memahami asosiasi dan dependensi data. Menggunakan tabel pivot sebagai ilustrasi adalah cara termudah untuk menunjukkan bagaimana metode ini beroperasi method. PostgreSQL 8.3 diluncurkan beberapa tahun yang lalu, dan versi baru bernama 'fungsi meja' ditambahkan. Fungsi meja adalah komponen yang berisi beberapa metode yang menghasilkan tabel (yaitu, beberapa baris). Modifikasi ini hadir dengan berbagai fitur yang sangat keren. Metode tab silang, yang akan digunakan untuk membuat tabel pivot, adalah salah satunya. Metode tab silang mengambil argumen tekstual: perintah SQL yang mengembalikan data mentah di tata letak pertama dan mengembalikan tabel di tata letak berikutnya.

Contoh Tabel Pivot Tanpa TableFunc:

Untuk mulai mengerjakan pivot PostgreSQL dengan modul 'tablefunc', Anda harus mencoba membuat tabel pivot tanpa modul tersebut. Jadi mari kita buka shell baris perintah PostgreSQL dan berikan nilai parameter untuk server, database, nomor port, nama pengguna, dan kata sandi yang diperlukan. Biarkan parameter ini kosong jika Anda ingin menggunakan parameter default yang dipilih default.

Kami akan membuat tabel baru bernama 'Test' di database 'test' dengan beberapa bidang di dalamnya, seperti yang ditampilkan di bawah ini.

>> CREATE TABLE Test(Id int, nama varchar(20), sal int, job varchar(20));

Setelah membuat tabel, saatnya untuk memasukkan beberapa nilai ke dalam tabel, seperti yang ditunjukkan dari kueri di bawah ini.

>> INSERT INTO Test (Id, name, sal, job) NILAI (11, 'Aqsha', 45000, 'Writer'), (11, 'Aqsa', 48000, 'Officer'), (11, 'Aqsha', 50000, 'Dokter'), (12, 'Raza', 40000, 'Petugas'), (11, 'Raza', 60000, 'Dokter'), (12, 'Raza', 67000, 'Petugas'), ( 13, 'Saeed', 85000, 'Writer'), (13, 'Saeed', 69000, 'Officer'), (13, 'Saeed', 90000, 'Dokter');

Anda dapat melihat bahwa data yang relevan telah berhasil dimasukkan. Anda dapat melihat tabel ini memiliki lebih dari 1 nilai yang sama untuk id, nama, dan pekerjaan.

>> PILIH * DARI masukan;

Mari kita buat tabel pivot, yang akan merangkum catatan tabel 'Uji' menggunakan kueri di bawah ini. Perintah menggabungkan nilai yang sama dari kolom 'Id' dan 'nama' dalam satu baris sambil mengambil jumlah nilai kolom 'gaji' untuk data yang sama sesuai dengan 'Id' dan 'nama'. Ini juga memberi tahu berapa kali satu nilai muncul dalam kumpulan nilai tertentu.

>> PILIH Id, nama, jumlah(sal) sal, jumlah((pekerjaan = 'Dokter')::int) Dokter, jumlah((pekerjaan = 'Penulis')::int) Penulis, jumlah((pekerjaan = 'Petugas ')::int) "Petugas" DARI KELOMPOK Uji BERDASARKAN Id, nama;

Contoh Tabel Pivot Dengan TableFunc:

Kami akan mulai dengan menjelaskan poin utama kami dari sudut pandang yang realistis, dan kemudian kami akan menjelaskan pembuatan tabel pivot dalam langkah-langkah yang kami suka. Jadi, pertama-tama, Anda harus menambahkan tiga tabel untuk mengerjakan sebuah pivot. Tabel pertama yang akan kita buat adalah 'Makeup', yang akan menyimpan informasi tentang makeup essentials. Coba kueri di bawah ini di shell baris perintah untuk membuat tabel ini.

>> CREATE TABLE JIKA TIDAK ADA Makeup(make_Id int PRIMARY KEY, p_name VARCHAR(100) NOT NULL);

Setelah membuat tabel 'Makeup', mari tambahkan beberapa catatan ke dalamnya. Kami akan menjalankan kueri yang tercantum di bawah ini di shell untuk menambahkan 10 catatan ke tabel ini.

Kita perlu membuat tabel lain bernama 'pengguna' yang akan menyimpan catatan pengguna yang menggunakan produk tersebut. Jalankan kueri yang dinyatakan di bawah ini di shell untuk membuat tabel ini.

>> BUAT TABEL JIKA TIDAK ADA pengguna (user_id int PRIMARY KEY, u_name varchar(100) NOT NULL);

Kami telah memasukkan 20 catatan untuk tabel 'pengguna' seperti yang ditunjukkan pada gambar di bawah ini.

Kami memiliki tabel lain, 'makeup_user', yang akan menyimpan catatan bersama dari tabel 'Makeup' dan 'users'. Ini memiliki bidang lain, 'harga', yang akan menghemat harga produk. Tabel telah dihasilkan dengan menggunakan kueri yang dinyatakan di bawah ini.

>> BUAT TABEL JIKA TIDAK ADA makeup_user( ID int PRIMARY KEY, Mid int NOT NULL REFERENCES Makeup(make_Id), Uid  int NOT NULL REFERENCES users(user_id), harga desimal(18,2));

Kami telah memasukkan total 56 catatan dalam tabel ini, seperti yang ditunjukkan pada gambar.

Mari buat tampilan lebih lanjut untuk menggunakannya untuk pembuatan tabel pivot. Tampilan ini menggunakan INNER Join untuk mencocokkan nilai kolom kunci utama dari ketiga tabel dan mengambil 'nama', 'nama_produk', dan 'biaya' produk dari tabel 'pelanggan'

>> BUAT VIEW v_makeup_users SEBAGAI PILIH c.u_name, p.p_name, pc.harga DARI pengguna c INNER JOIN makeup_user pc ON c.user_id = pc.Uid INNER JOIN Makeup p DI pc.Pertengahan = p.make_Id;

Untuk menggunakan ini, Anda harus terlebih dahulu menginstal paket tablefunc untuk database yang ingin Anda gunakan. Paket ini adalah built-in PostgreSQL 9.1 dan kemudian dirilis dengan menjalankan perintah yang disebutkan di bawah ini. Paket tablefunc telah diaktifkan untuk Anda sekarang.

>> BUAT EKSTENSI JIKA TIDAK ADA tablefunc;

Setelah membuat ekstensi, saatnya menggunakan fungsi Crosstab() untuk membuat tabel pivot. Jadi kita akan menggunakan kueri berikut di shell baris perintah untuk melakukannya. Kueri ini pertama kali mengambil catatan dari 'Tampilan' yang baru dibuat. Catatan ini akan diurutkan dan dikelompokkan menurut urutan kolom 'u_name' dan 'p_name'. Kami telah mencantumkan nama rias mereka untuk setiap pelanggan, yang telah mereka beli, dan total biaya produk yang dibeli di tabel. Kami telah menerapkan operator UNION ALL pada kolom 'p_name' untuk menjumlahkan semua produk yang dibeli oleh satu pelanggan secara terpisah. Ini akan menjumlahkan semua biaya produk yang dibeli oleh pengguna menjadi satu nilai.

Tabel Pivot kami telah siap dan ditampilkan pada gambar. Anda dapat melihat dengan jelas bahwa beberapa ruang kolom kosong di bawah setiap p_name karena mereka belum membeli produk tertentu.

Kesimpulan:

Kami sekarang telah mempelajari cara membuat tabel pivot untuk meringkas hasil tabel dengan dan tanpa menggunakan paket Tablefunc.

Alat Berguna untuk Gamer Linux
Jika Anda suka bermain game di Linux, kemungkinan besar Anda telah menggunakan aplikasi dan utilitas seperti Wine, Lutris, dan OBS Studio untuk mening...
Game Remaster HD untuk Linux yang Belum Pernah Rilis Linux Sebelumnya
Banyak pengembang dan penerbit game datang dengan remaster HD dari game lama untuk memperpanjang umur waralaba, harap penggemar meminta kompatibilitas...
Cara Menggunakan AutoKey untuk Mengotomatiskan Game Linux
AutoKey adalah utilitas otomatisasi desktop untuk Linux dan X11, diprogram dengan Python 3, GTK dan Qt. Dengan menggunakan skrip dan fungsionalitas MA...