PostgreSQL

Cara Menggunakan Fungsi PostgreSQL ARRAY_AGG?

Cara Menggunakan Fungsi PostgreSQL ARRAY_AGG?
Kaedah agregat ARRAY_AGG () adalah salah satu kaedah yang digunakan dalam PostgreSQL, yang mengambil beberapa nilai input dan menggabungkannya menjadi array, termasuk nilai NULL. Ia mengembalikan array dengan setiap nilai dari kumpulan input sebagai bahagian. Untuk menyusun hasil yang ditetapkan melalui fungsi PostgreSQL ARRAY_AGG, anda akan menggunakan frasa ORDER BY. Anda juga boleh menggunakan klausa DI MANA apabila diperlukan.

Untuk memahami kaedah ARRAY_Agg () agregat, anda harus melakukan beberapa contoh. Untuk tujuan ini, buka shell baris arahan PostgreSQL. Sekiranya anda mahu menghidupkan Pelayan lain, lakukan dengan memberikan namanya. Jika tidak, biarkan ruang kosong dan tekan butang Enter untuk melompat di Pangkalan Data. Sekiranya anda ingin menggunakan pangkalan data lalai, e.g., Postgres, kemudian biarkan seperti sedia ada dan tekan Enter; jika tidak, tulis nama pangkalan data, e.g., "Uji", seperti yang ditunjukkan dalam gambar di bawah. Sekiranya anda ingin menggunakan port lain, tuliskan, jika tidak, biarkan seperti sedia ada dan ketik Enter untuk meneruskan. Ia akan meminta anda menambahkan nama pengguna jika anda mahu menukar ke nama pengguna lain. Tambahkan nama pengguna jika anda mahu, jika tidak, tekan "Enter". Pada akhirnya, anda harus memberikan kata laluan pengguna semasa anda, untuk mula menggunakan baris perintah menggunakan pengguna tertentu seperti di bawah. Setelah berjaya memasukkan semua maklumat yang diperlukan, anda boleh pergi.

Penggunaan ARRAY_AGG Pada Lajur Tunggal:

Pertimbangkan jadual "orang" dalam pangkalan data "ujian" yang mempunyai tiga lajur; "Id", "nama", dan "usia". Lajur "id" mempunyai id semua orang. Manakala medan 'nama' mengandungi nama orang dan lajur 'umur' umur semua orang.

>> PILIH * DARI orang;

Bergantung pada jadual overhead, kita harus menerapkan kaedah ARRAY_AGG agregat untuk mengembalikan senarai array semua nama jadual melalui lajur "nama". Dengan ini, anda harus menggunakan fungsi ARRAY_AGG () dalam pertanyaan SELECT untuk mendapatkan hasilnya dalam bentuk array. Cuba pertanyaan yang dinyatakan di shell arahan anda dan dapatkan hasilnya. Seperti yang anda lihat, kami mempunyai lajur keluaran di bawah "array_agg" yang mempunyai nama yang disenaraikan dalam array untuk pertanyaan yang sama.

>> PILIH ARRAY_AGG (nama) DARI orang;

Penggunaan ARRAY_AGG Pada Pelbagai Lajur Dengan PESANAN MENGIKUT Klausa:

Contoh 01:

Menerapkan fungsi ARRAY_AGG ke beberapa lajur semasa menggunakan klausa ORDER BY, pertimbangkan jadual yang sama "orang" dalam "ujian" pangkalan data yang mempunyai tiga lajur; "Id", "nama", dan "usia". Dalam contoh ini, kita akan menggunakan klausa GROUP BY.

>> PILIH * DARI orang;

Kami telah menggabungkan hasil permintaan SELECT dalam daftar array ketika menggunakan dua lajur "nama" dan "usia". Dalam contoh ini, kita telah menggunakan ruang sebagai watak khas yang telah digunakan untuk menggabungkan kedua lajur ini sejauh ini. Sebaliknya, kami telah mengambil lajur "id" secara berasingan. Hasil susunan gabungan akan ditunjukkan dalam lajur "persondata" pada waktu berjalan. Kumpulan hasil pertama akan dikelompokkan berdasarkan "id" orang tersebut dan disusun dalam urutan menaik bidang "id". Mari cuba arahan di bawah ini di shell dan lihat sendiri hasilnya. Anda dapat melihat kami mempunyai susunan berasingan untuk setiap nilai gabungan nama-usia pada gambar di bawah.

>> PILIH id, ARRAY_AGG (nama || "|| umur) sebagai persondata DARI orang KUMPULAN MENGIKUT id PESANAN OLEH id;



Contoh 02:

Pertimbangkan jadual yang baru dibuat "Karyawan" dalam "ujian" pangkalan data yang mempunyai lima lajur; "Id", "nama", "gaji", "usia", dan "e-mel". Jadual menyimpan semua data mengenai 5 Pekerja yang bekerja di sebuah syarikat. Dalam contoh ini, kita akan menggunakan watak khas '-' untuk menggabungkan dua medan dan bukannya menggunakan ruang sambil menggunakan klausa GROUP BY dan ORDER BY.

>> PILIH * DARI Pekerja;

Kami menggabungkan data dua lajur, "nama" dan "e-mel" dalam satu array sambil menggunakan '-' di antara mereka. Sama seperti sebelumnya, kami mengekstrak lajur "id" dengan jelas. Hasil kolum gabungan akan ditunjukkan sebagai "emp" pada waktu berjalan. Hasilnya pertama kali akan disusun oleh "id" orang itu, dan setelah itu, akan disusun dalam urutan menaik dari kolom "id". Mari cuba perintah yang sangat serupa di cangkang dengan perubahan kecil dan lihat akibatnya. Dari hasil di bawah, anda telah memperoleh susunan yang berbeza untuk setiap nilai gabungan nama-e-mel yang ditunjukkan dalam gambar sementara tanda '-' digunakan dalam setiap nilai.

>> SELECT id, ARRAY_AGG (name || '-' || email) SEBAGAI emp DARI KUMPULAN Kakitangan MENGIKUT id ORDER BY id;

Penggunaan ARRAY_AGG Pada Pelbagai Lajur Tanpa PESANAN MENGIKUT Klausa:

Anda juga boleh mencuba kaedah ARRAY_AGG di mana-mana meja tanpa menggunakan klausa ORDER BY dan GROUP BY. Anggap "pelakon" jadual yang baru dibuat dalam "ujian" pangkalan data lama anda yang mempunyai tiga lajur; "Id", "fname", dan "lname". Jadual mengandungi data mengenai nama depan dan nama belakang pelakon beserta id mereka.

>> PILIH * DARI pelakon;

Oleh itu, gabungkan dua lajur "fname" dan "lname" dalam senarai tatasusunan sambil menggunakan ruang di antara mereka, sama seperti yang anda lakukan dalam dua contoh terakhir. Kami belum mengeluarkan lajur 'id' dengan jelas dan kami telah menggunakan fungsi ARRAY_AGG dalam pertanyaan SELECT. Lajur gabungan yang dihasilkan akan disajikan sebagai "pelakon". Cubalah pertanyaan yang dinyatakan di bawah di shell perintah dan lihat sekilas array yang dihasilkan. Kami telah memperoleh satu array dengan nilai gabungan nama-e-mel yang disajikan, dipisahkan dengan koma dari hasilnya.

Kesimpulan:

Akhirnya, anda hampir selesai melaksanakan sebahagian besar contoh yang diperlukan untuk memahami kaedah agregat ARRAY_AGG. Cubalah lebih banyak daripadanya untuk pemahaman dan pengetahuan yang lebih baik.

Port Sumber Terbuka Mesin Permainan Komersial
Rekreasi enjin permainan sumber terbuka dan bebas platform boleh digunakan untuk bermain lama dan juga beberapa tajuk permainan yang baru-baru ini. Ar...
Permainan Perintah Terbaik untuk Linux
Baris perintah bukan hanya sekutu terbesar anda ketika menggunakan Linux-ia juga dapat menjadi sumber hiburan kerana anda dapat menggunakannya untuk m...
Aplikasi Pemetaan Gamepad Terbaik untuk Linux
Sekiranya anda suka bermain permainan di Linux dengan gamepad dan bukannya sistem input papan kekunci dan tetikus biasa, ada beberapa aplikasi berguna...