Postgres Group_Concat

Postgres Group Concat



Στη MySQL, η συνάρτηση GROUP_CONCAT είναι μια αθροιστική συνάρτηση που συνενώνει τις τιμές από πολλές σειρές σε μια ενιαία συμβολοσειρά. Χρησιμοποιείται συνήθως για τη σύμπτυξη πολλαπλών σειρών σε μία μόνο σειρά, συνδυάζοντας σχετικά δεδομένα.

Ωστόσο, η PostgreSQL δεν υποστηρίζει εγγενώς τη συνάρτηση group_concat() σε αντίθεση με τη MySQL. Επομένως, αυτό το σεμινάριο διερευνά πώς μπορούμε να επιτύχουμε μια παρόμοια λειτουργικότητα χρησιμοποιώντας τη συνάρτηση string_agg().

Λειτουργία PostgreSQL String_Agg

Η συνάρτηση string_agg στο PostgreSQL μας επιτρέπει να συνενώνουμε τις τιμές από πολλές σειρές σε μια ενιαία συμβολοσειρά και διαχωρίζεται από την καθορισμένη παράμετρο.







Η χρήση της σύνταξης της συνάρτησης αποδεικνύεται ως εξής:



SELECT string_agg(όνομα_στήλης, οριοθέτης)
FROM table_name
ΠΟΥ συνθήκες
GROUP BY grouping_columns;

Η ακόλουθη σύνταξη εκφράζεται ως εξής:



στήλη_όνομα – Καθορίζει το όνομα της στήλης της οποίας η στήλη θέλουμε να συνδέσουμε.





οριοθέτης – Καθορίζει τον διαχωριστικό χαρακτήρα που χρησιμοποιείται κατά την ένωση των τιμών εισόδου.

όνομα_πίνακα – Ο πίνακας προορισμού που περιέχει τα δεδομένα.



ομαδοποίηση_στήλων – Καθορίζει τις στήλες που χρησιμοποιούνται για την ομαδοποίηση των καθορισμένων δεδομένων.

Παράδειγμα συνάρτησης PostgreSQL String_Agg

Ας πάρουμε ένα πιο πρακτικό παράδειγμα για να δείξουμε πώς λειτουργεί η συνάρτηση. Ας υποθέσουμε ότι έχουμε έναν πίνακα που περιέχει τις πληροφορίες του μαθητή. Ο πίνακας περιέχει τρεις στήλες: id, όνομα και θέμα.

Αν θέλουμε να συνδέσουμε τα ονόματα των μαθητών που εγγράφηκαν στο ίδιο μάθημα, μπορούμε να χρησιμοποιήσουμε τη συνάρτηση string_agg.

ΕΠΙΛΟΓΗ θέματος, string_agg ( όνομα, ',' ) ΩΣ μαθητές
ΑΠΟ μαθητές
ΟΜΑΔΑ ΑΝΑ ΘΕΜΑ.

Μόλις εκτελέσουμε το συγκεκριμένο ερώτημα, θα πρέπει να επιστρέψει ένα σύνολο αποτελεσμάτων με δύο κύριες στήλες: το θέμα και τους μαθητές. Οι μαθητές περιέχουν τα συνενωμένα ονόματα των μαθητών για κάθε θέμα και χωρίζονται με κόμμα.

ΣΗΜΕΙΩΣΗ : Η συνάρτηση string_agg ταξινομεί τις συνδυασμένες τιμές από προεπιλογή. Μπορείτε να προσθέσετε έναν όρο ORDER BY μέσα στη συνάρτηση string_agg για να διατηρήσετε την αρχική σειρά.

Ορίστε το! Μια απλή και αποτελεσματική μέθοδος για την επίτευξη παρόμοιας λειτουργικότητας που παρέχεται από τη συνάρτηση group_concat() στο PostgreSQL.

συμπέρασμα

Σε αυτό το σύντομο αλλά αποτελεσματικό σεμινάριο, μάθαμε πώς να χρησιμοποιούμε τη συνάρτηση string_agg στο PostgreSQL για να επιτύχουμε μια παρόμοια λειτουργικότητα που παρέχεται από τη συνάρτηση group_concat() στη MySQL.