Kumpulan Postgresql oleh

Kumpulan Postgresql Oleh



Kumpulan Postgresql mengikut klausa ialah ciri yang digunakan untuk menyatukan/menggabungkan baris tersebut dalam jadual yang mempunyai data yang sama. Klausa ini digunakan terutamanya untuk mengalih keluar data pendua dan untuk mengekalkan konkurensi. Setiap kali kita ingin mengira jumlah, atau mana-mana agregat lain seperti AVG, dsb., kumpulan mengikut klausa ini sentiasa digunakan kerana terdapat banyak klausa yang digunakan dalam PostgreSQL. Tetapi terdapat hierarki antara setiap klausa.

DARI > MANA > 'KUMPULAN OLEH' > MEMPUNYAI > PILIH > BERBEZA > PESANAN MENGIKUT > HAD

Kerja PostgreSQL terletak dalam 'di mana' dan klausa 'Memiliki'.







Sintaks



PILIH lajur

DARI dumytable

DI MANA [syarat ]

KUMPULAN MENGIKUT lajur pertama, lajur kedua..

URUSAN MENGIKUT lajur pertama, lajur kedua.. ;

Contoh 1



Untuk memahami konsep kumpulan mengikut fungsi, kami menggunakan contoh di sini. Dalam jadual penumpang, anda dapat melihat bahawa nama keluarga adalah sama untuk sesetengah orang. Setiap nama yang serupa dengan nama lain membentuk kumpulan, dan pembayaran mereka ditambah secara kolektif terhadap setiap nama yang sama. Ini dihuraikan dalam contoh di bawah.





>> pilih lnama, JUMLAH (bayaran) daripada penumpang KUMPULAN OLEH lnama;

Nama keluarga penumpang dipilih dengan menggunakan fungsi terbina dalam 'SUM' yang mengambil lajur 'pembayaran'. Dan tambahkan bayaran untuk orang yang mempunyai nama yang sama. Sebagai contoh, gaji 'Javed' dan 'saad' ditambah. Manakala untuk 'Malik' dan 'Shams', ia disebut secara individu.



Begitu juga, pertimbangkan jadual 'hospital'. Kami mahu mengelompokkan bandar untuk usia. Dalam contoh ini, satu bandar wujud lebih daripada sekali dalam lajur. Setiap bandar dikumpulkan dengan nama bandar yang sama. Umur setiap kumpulan bandar ditambah dan membentuk satu baris.

Hospital:

>> pilih bandar, JUMLAH (umur) dari hospital KUMPULAN MENGIKUT bandar;

Contoh 2

Sebagai alternatif, jika kita memilih nama akhir dengan id daripada penumpang meja, yang terhasil akan menjadi jadual yang berbeza. Kerana apabila kami mengumpulkan kedua-dua lajur bersama, ia akan memaparkan nama setiap penumpang kerana id untuk setiap penumpang, walaupun mempunyai nama keluarga biasa, adalah berbeza. Jumlah dikira dalam lajur yang berasingan, tetapi bayaran setiap penumpang disebut di hadapan namanya kerana pengelompokan nama tidak dilakukan di sini.

Ini ialah contoh kumpulan mengikut klausa dengan berbilang lajur. Kerana apabila berbilang lajur dipilih untuk pengumpulan, nilai terhasil ditukar berbanding kumpulan dengan satu jadual.

>> pilih id, lnama, JUMLAH (bayaran) daripada penumpang KUMPULAN MENGIKUT id, lnama;

Daripada output, anda akan melihat satu perkara yang pertama sekali, semua nama yang tidak biasa dipaparkan, dan kemudian nama yang sama disebut dalam jadual.

Contoh 3

Contoh ini mempunyai syarat bergabung dan kumpulan mengikut klausa. Apabila ‘join’ digunakan, ini bermakna kami telah menggunakan dua jadual di sini. Satu ialah 'item', dan satu lagi ialah 'pesanan'.

Item:

Pesanan:

Kami telah menggunakan kaedah penggabungan (digunakan untuk menggabungkan dua rentetan) untuk menggabungkan nilai dua lajur jadual 'item' dengan ',' dan menamakan lajur secara kolektif sebagai 'perihalan'. Ia adalah pilihan; anda boleh mengambilnya secara berasingan. Dalam pertanyaan ini, kata kunci 'USING' mengenal pasti lajur tertentu daripada jadual lain. Alamat daripada jadual item dipadankan dengan lajur alamat jadual 'pesanan'. Ini dilakukan dengan membuat cantuman antara dua jadual. Seperti contoh sebelumnya, kedua-dua lajur akan dipilih oleh klausa GROUP BY.

>> pilih nama || ‘,’ || kategori sebagai Penerangan, alamat dari item dalam sertai Pesanan MENGGUNAKAN (alamat) KUMPULAN MENGIKUT alamat, Penerangan;

Anda boleh melihat bahawa 5 baris akan dipilih yang mempunyai alamat item yang sepadan dengan alamat Pesanan. Dan kemudian, lajur Penerangan akan membentuk surat-menyurat dengan lajur alamat.

Begitu juga, terdapat satu lagi contoh penggabungan dengan faktor umur dalam dua jadual. Satu adalah 'penumpang', dan satu lagi adalah 'pekerja'. Gabungan adalah antara nama pertama dan nama akhir. Kedua-dua nama ini dipisahkan melalui ruang antara dua nama. Kami telah mengambil sebahagian daripada meja pekerja di sini.

pekerja:

Pertanyaan akan berfungsi supaya titik di mana nama pekerja dipadankan dengan penumpang, umur dari penumpang, dipaparkan dalam lajur umur.

>> pilih fname || ‘ ‘ || penumpang.lnama sebagai nama_penuh, penumpang.umur daripada penumpang DALAM menyertai pekerja MENGGUNAKAN (fname) KUMPULAN MENGIKUT_nama_penuh, penumpang.umur PESANAN MENGIKUT penumpang.umur;

Satu baris terbentuk. Nama_penuh dicipta dengan menggabungkan dua lajur dengan ruang, dan alamat dipilih di mana nama penumpang sepadan dengan nama pekerja.

Contoh 4

Contoh ini berkaitan dengan penggunaan fungsi count () untuk mengira id jadual 'item'. Ini sekali lagi kumpulan mengikut id jadual.

>> Pilih id, KIRA (id) DARI item KUMPULAN OLEH id;

Baris dalam lajur id dibahagikan kepada kumpulan. Setiap kumpulan dikira dalam lajur bahawa berapa kali ia muncul dalam lajur. Dalam jadual terhasil, lajur baharu dengan nama 'kiraan' dicipta dan nilai kiraan ditulis di sini di hadapan setiap kumpulan.

pgAdmin anda

Kini kami telah menggunakan beberapa contoh pada bahagian papan pemuka PostgreSQL. Contoh-contoh ini berbeza dalam beberapa jenis kerana ia membentuk baris kecil daripada lajur asal apabila mana-mana satu item berbeza daripada yang lain, jadi nilai dikembalikan sebagai NULL.

Pertimbangkan contoh pertama; di sini, kami telah mencipta nama lajur 'SEMUA' yang telah menggabungkan dua lajur. Alamat dan kategori. Lajur 'SEMUA' mengira nilai dalam kedua-dua lajur secara kolektif. Lajur alamat dikumpulkan sebagai 'tambah', dan lajur kategori dikumpulkan secara berasingan sebagai 'kucing'. Oleh kerana nama lajur kedua-dua jadual yang digunakan boleh dipadankan antara satu sama lain. Jadi setiap lajur jadual masing-masing diakses oleh objek tertentu.

Syarat yang digunakan pada arahan bergantung pada id dan nombor pesanan. Jika kedua-dua id dan nombor pesanan ini adalah sama, data akan diambil. Begitu juga, syarat tambahan juga ditambah untuk nama itu.

>> PILIH o.alamat, kategori, kira (*) SEBAGAI “SEMUA”, PENGUMPULAN(o.alamat) SEBAGAI “tambah” , PENGUMPULAN (kategori ) SEBAGAI “kucing” DARIPADA item I, pesanan o di mana i.order_no = o. order_id DAN i.address= KUMPULAN 'Lahore' MENGIKUT CUBE (o.alamat, kategori) PESANAN OLEH 1, 2;

Untuk bandar Lahore, satu kategori dipilih. Terdapat 4 kemungkinan. Kadangkala, mainan itu ada tetapi bukan alamatnya. Dan begitu juga sebaliknya. Tetapi ada masa di mana kedua-dua kategori dan alamat hadir.

Sekarang, jika kita menukar keadaan nama daripada jadual dan menukar jadual dengan yang lain. 'Items.address' digantikan dengan 'order.address', maka hasilnya berbeza.

Kesimpulan

Klausa 'Postgresql group by' digunakan untuk menggunakan mana-mana pengendali agregat pada data kolektif. Artikel ini menggunakan kumpulan mengikut klausa dengan fungsi kiraan, cantuman dan pemilihan serta pengelompokan berbilang lajur. Saya pasti tutorial ini akan menjadi cara pemahaman terbaik untuk pembaca.