Grup Postgresql oleh

Grup Postgresql Oleh



Postgresql group by clause adalah fitur yang digunakan untuk menyatukan/menggabungkan baris-baris dalam tabel yang memiliki data yang sama. Klausul ini terutama digunakan untuk menghapus data duplikat dan mempertahankan konkurensi. Setiap kali kita ingin menghitung jumlah, atau agregat lain seperti AVG, dll., klausa grup per ini selalu digunakan karena ada banyak klausa yang digunakan di PostgreSQL. Tetapi ada hierarki di antara setiap klausa.

FROM > WHERE > “GROUP BY” > HAVING > SELECT > DISTINCT > ORDER BY > LIMIT

Cara kerja PostgreSQL terletak di dalam klausa 'di mana' dan 'Memiliki'.







Sintaksis



kolom PILIH

DARI meja yang dapat ditagih

DIMANA [kondisi]

GROUP BY firstcolumn, secondcolumn..

ORDER BY firstcolumn, secondcolumn.. ;

Contoh 1



Untuk memahami konsep grup berdasarkan fungsi, kami menggunakan contoh di sini. Di tabel penumpang, Anda dapat melihat bahwa nama belakang beberapa orang sama. Setiap nama yang mirip dengan yang lain membentuk grup, dan pembayaran mereka ditambahkan secara kolektif untuk setiap nama yang sama. Ini diuraikan dalam contoh di bawah ini.





>> pilih lname, SUM (pembayaran) dari penumpang GROUP BY lname;

Nama belakang penumpang dipilih dengan menggunakan fungsi bawaan 'SUM' yang menggunakan kolom 'pembayaran'. Dan tambahkan pembayaran untuk orang-orang yang memiliki nama yang sama. Misalnya, gaji 'Javed' dan 'saad' ditambahkan. Sedangkan untuk “Malik” dan “Syams” disebutkan satu per satu.



Demikian pula, pertimbangkan tabel 'rumah sakit'. Kami ingin mengelompokkan kota untuk usia. Dalam contoh ini, satu kota ada lebih dari satu kali dalam satu kolom. Setiap kota dikelompokkan dengan nama kota yang sama. Usia setiap kelompok kota ditambahkan dan membentuk satu baris.

RSUD:

>> pilih kota, JUMLAH (umur) dari rumah sakit GROUP BY kota;

Contoh 2

Alternatifnya, jika kita memilih nama belakang dengan id dari tabel penumpang, hasilnya akan menjadi tabel yang berbeda. Karena ketika kita mengelompokkan kedua kolom tersebut, maka akan muncul nama masing-masing penumpang karena id untuk setiap penumpang, meski memiliki nama belakang yang sama, berbeda. Jumlahnya dihitung dalam kolom terpisah, tetapi setiap pembayaran penumpang disebutkan di depan namanya karena pengelompokan lname tidak dilakukan di sini.

Ini adalah contoh grup dengan klausa dengan banyak kolom. Karena ketika beberapa kolom dipilih untuk pengelompokan, nilai yang dihasilkan diubah dibandingkan dengan pengelompokan oleh satu tabel.

>> pilih id, lname, SUM (pembayaran) dari penumpang GROUP BY id, lname;

Dari output, Anda akan melihat satu hal yang pertama, semua lname yang tidak umum ditampilkan, dan kemudian yang sama disebutkan dalam tabel.

Contoh 3

Contoh ini memiliki kondisi gabungan dan grup berdasarkan klausa. Karena 'bergabung' digunakan, itu berarti kami telah menggunakan dua tabel di sini. Salah satunya adalah 'item', dan yang lainnya adalah 'pesanan'.

Item:

Pesanan:

Kami telah menggunakan metode penggabungan (digunakan untuk menggabungkan dua string) untuk menggabungkan nilai dari dua kolom tabel 'item' dengan ',' dan menamai kolom secara kolektif sebagai 'deskripsi'. Itu opsional; Anda dapat mengambilnya secara terpisah. Dalam kueri ini, kata kunci “MENGGUNAKAN” mengidentifikasi kolom tertentu dari tabel lain. Alamat dari tabel item dicocokkan dengan kolom alamat dari tabel “pesanan”. Ini dilakukan dengan membuat gabungan antara dua tabel. Seperti contoh sebelumnya, kedua kolom akan dipilih oleh klausa GROUP BY.

>> pilih nama || ',' || kategori sebagai Keterangan, alamat dari item inner join Pesanan MENGGUNAKAN (alamat) GROUP BY alamat, Deskripsi;

Anda dapat mengamati bahwa 5 baris akan dipilih dengan alamat barang yang cocok dengan alamat Pesanan. Kemudian kolom Keterangan akan dibentuk korespondensi dengan kolom alamat.

Demikian pula, ada contoh lain penggabungan dengan faktor usia dalam dua tabel. Yang satu adalah 'penumpang', dan yang lainnya adalah 'pekerja'. Penggabungan adalah antara nama depan dan nama belakang. Kedua nama ini dipisahkan melalui spasi di antara dua nama. Kami telah mengambil bagian dari tabel pekerja di sini.

Pekerja:

Kueri akan bekerja sehingga titik di mana fname pekerja cocok dengan penumpang, usia dari penumpang, ditampilkan di kolom usia.

>> pilih fname || ‘ ‘ || penumpang.lname sebagai nama_lengkap, penumpang.usia dari penumpang INNER bergabung dengan pekerja MENGGUNAKAN (fname) GROUP OLEH nama_lengkap, penumpang.usia ORDER OLEH penumpang.usia;

Satu baris terbentuk. Full_name dibuat dengan menggabungkan dua kolom dengan spasi, dan alamat dipilih dimana fname penumpang cocok dengan fname pekerja.

Contoh 4

Contoh ini berkaitan dengan penggunaan fungsi hitung () untuk menghitung id dari tabel 'item'. Ini lagi dikelompokkan berdasarkan id tabel.

>> Pilih id, COUNT (id) FROM item GROUP BY id;

Baris di kolom id dibagi menjadi beberapa grup. Setiap kelompok dihitung di kolom berapa kali muncul di kolom. Di tabel yang dihasilkan, kolom baru dengan nama 'jumlah' dibuat, dan nilai hitungan ditulis di sini di depan setiap grup.

pgAdmin Anda

Sekarang kami telah menerapkan beberapa contoh di sisi dasbor PostgreSQL. Contoh-contoh ini berbeda dalam beberapa hal karena mereka membentuk baris subtotal dari kolom asli ketika salah satu item berbeda dari yang lain, sehingga nilainya dikembalikan sebagai NULL.

Pertimbangkan contoh pertama; di sini, kami telah membuat nama kolom 'ALL' yang menggabungkan dua kolom. Alamat dan kategori. Kolom 'SEMUA' menghitung nilai di kedua kolom secara kolektif. Kolom alamat dikelompokkan sebagai 'tambah', dan kolom kategori dikelompokkan secara terpisah sebagai 'kucing'. Karena nama kolom dari kedua tabel yang digunakan dapat dicocokkan satu sama lain. Jadi setiap kolom dari tabel masing-masing diakses oleh objek tertentu.

Kondisi yang diterapkan pada perintah tergantung pada id dan nomor urut. Jika id dan nomor pesanan ini sama, data akan diambil. Demikian pula, kondisi tambahan juga ditambahkan untuk nama tersebut.

>> SELECT o.address, category, count (*) AS “ALL”, GROUPING(o.address) AS “add”, GROUPING (category ) AS “cat” FROM item I, order o where i.order_no = o. order_id AND i.address= 'Lahore' GROUP BY CUBE (o.address, kategori) ORDER BY 1, 2;

Untuk kota Lahore dipilih satu kategori. Ada 4 kemungkinan. Terkadang, mainan itu ada tetapi tidak ada alamatnya. Dan sebaliknya. Tapi ada waktu di mana kategori dan alamatnya ada.

Sekarang, jika kita mengubah kondisi nama dari sebuah tabel dan mengganti tabel tersebut dengan yang lain. “Items.address” diganti dengan “order.address”, maka hasilnya berbeda.

Kesimpulan

Klausa 'Postgresql group by' digunakan untuk menerapkan operator agregat apa pun ke data kolektif. Artikel ini menggunakan kelompok berdasarkan klausa dengan fungsi hitung, gabungan, dan pemilihan serta pengelompokan beberapa kolom. Saya yakin tutorial ini akan menjadi sarana pemahaman terbaik bagi para pembaca.