Ωστόσο, η 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.