Postgres Group_Concat

Postgres Group Concat



ב-MySQL, הפונקציה GROUP_CONCAT היא פונקציה מצטברת שמשרשרת את הערכים ממספר שורות למחרוזת אחת. זה משמש בדרך כלל כדי לכווץ שורות מרובות לשורה אחת, תוך שילוב נתונים קשורים.

עם זאת, PostgreSQL אינו תומך באופן טבעי בפונקציית group_concat() בניגוד ל-MySQL. לכן, מדריך זה בוחן כיצד אנו יכולים להשיג פונקציונליות דומה באמצעות הפונקציה string_agg() .

PostgreSQL String_Agg פונקציה

הפונקציה string_agg ב-PostgreSQL מאפשרת לנו לשרשר את הערכים ממספר שורות למחרוזת אחת ומופרדת על ידי הפרמטר שצוין.







השימוש בתחביר הפונקציה מודגם באופן הבא:



SELECT string_agg(column_name, delimiter)
FROM table_name
WHERE תנאים
GROUP BY grouping_columns;

התחביר הבא בא לידי ביטוי באופן הבא:



column_name – הוא מציין את שם העמודה שברצוננו לשרשר את העמודה שלה.





תוחם - הוא מגדיר את תו המפריד המשמש בעת צירוף ערכי הקלט.

שם שולחן – טבלת היעד המכילה את הנתונים.



קבוצות_עמודות – הוא מציין את העמודות המשמשות לקיבוץ הנתונים שצוינו.

דוגמה לפונקציה PostgreSQL String_Agg

הבה ניקח דוגמה מעשית יותר כדי להמחיש כיצד הפונקציה פועלת. נניח שיש לנו טבלה המכילה את מידע התלמיד. הטבלה מכילה שלוש עמודות: מזהה, שם ונושא.

אם נרצה לשרשר את שמות התלמידים שנרשמו לאותו נושא, נוכל להשתמש בפונקציה string_agg.

בחר נושא, string_agg ( שֵׁם, ',' ) תלמידי AS
מסטודנטים
GROUP BY נושא;

לאחר שנפעיל את השאילתה הנתונה, היא אמורה להחזיר ערכת תוצאות עם שתי עמודות עיקריות: הנושא והתלמידים. התלמידים מכילים את השמות המשורשרים של התלמידים לכל מקצוע ומופרדים בפסיק.

הערה : הפונקציה string_agg ממיינת את הערכים המשורשרים כברירת מחדל. אתה יכול להוסיף משפט ORDER BY בתוך הפונקציה string_agg כדי לשמור על הסדר המקורי.

הנה לך! שיטה פשוטה ויעילה להשגת פונקציונליות דומה המסופקת על ידי הפונקציה group_concat() ב-PostgreSQL.

סיכום

במדריך הקצר אך היעיל הזה, למדנו כיצד להשתמש בפונקציה string_agg ב-PostgreSQL כדי להשיג פונקציונליות דומה שמספקת הפונקציה group_concat() ב-MySQL.