Postgres Group_Concat

Postgres Group Concat



ใน MySQL ฟังก์ชัน GROUP_CONCAT เป็นฟังก์ชันรวมที่เชื่อมค่าจากหลายแถวเข้าด้วยกันเป็นสตริงเดียว โดยทั่วไปจะใช้เพื่อยุบหลายแถวเป็นแถวเดียว รวมข้อมูลที่เกี่ยวข้องกัน

อย่างไรก็ตาม PostgreSQL ไม่รองรับฟังก์ชัน group_concat() ซึ่งแตกต่างจาก MySQL ดังนั้นบทช่วยสอนนี้จะสำรวจวิธีที่เราสามารถใช้งานฟังก์ชันที่คล้ายกันได้โดยใช้ฟังก์ชัน string_agg()

ฟังก์ชัน PostgreSQL String_Agg

ฟังก์ชัน string_agg ใน PostgreSQL ช่วยให้เราสามารถเชื่อมค่าจากหลายแถวเข้าด้วยกันเป็นสตริงเดียว และคั่นด้วยพารามิเตอร์ที่ระบุ







การใช้ไวยากรณ์ของฟังก์ชันมีดังต่อไปนี้:



เลือก string_agg (ชื่อคอลัมน์ ตัวคั่น)
จาก table_name
เงื่อนไขอยู่ที่ไหน
จัดกลุ่มตาม grouping_columns;

ไวยากรณ์ต่อไปนี้แสดงไว้ดังนี้:



ชื่อคอลัมน์ – มันระบุชื่อของคอลัมน์ที่เราต้องการเชื่อมคอลัมน์





ตัวคั่น – กำหนดอักขระตัวคั่นที่ใช้เมื่อรวมค่าอินพุต

table_name – ตารางเป้าหมายที่มีข้อมูล



grouping_columns – ระบุคอลัมน์ที่ใช้ในการจัดกลุ่มข้อมูลที่ระบุ

ตัวอย่างฟังก์ชัน PostgreSQL String_Agg

ให้เรายกตัวอย่างที่เป็นประโยชน์มากขึ้นเพื่อแสดงให้เห็นว่าฟังก์ชันทำงานอย่างไร สมมติว่าเรามีตารางที่มีข้อมูลของนักเรียน ตารางประกอบด้วยสามคอลัมน์: รหัส ชื่อ และหัวเรื่อง

หากเราต้องการเชื่อมชื่อนักเรียนที่ลงทะเบียนเรียนในวิชาเดียวกัน เราสามารถใช้ฟังก์ชัน string_agg

เลือกหัวเรื่อง string_agg ( ชื่อ, ',' ) เป็นนักเรียน
จากนักเรียน
กลุ่มตามเรื่อง;

เมื่อเราเรียกใช้แบบสอบถามที่กำหนด ควรส่งคืนชุดผลลัพธ์ที่มีสองคอลัมน์หลัก: หัวเรื่องและนักเรียน นักเรียนประกอบด้วยชื่อนักเรียนที่ต่อกันสำหรับแต่ละวิชาและคั่นด้วยเครื่องหมายจุลภาค

บันทึก : ฟังก์ชัน string_agg เรียงลำดับค่าที่ต่อกันตามค่าเริ่มต้น คุณสามารถเพิ่ม ORDER BY clause ภายในฟังก์ชัน string_agg เพื่อรักษาลำดับเดิม

คุณมีมัน! วิธีที่ตรงไปตรงมาและมีประสิทธิภาพในการบรรลุฟังก์ชันการทำงานที่คล้ายคลึงกันซึ่งมีให้โดยฟังก์ชัน group_concat() ใน PostgreSQL

บทสรุป

ในบทช่วยสอนสั้นๆ แต่ได้ผลดีนี้ เราได้เรียนรู้วิธีใช้ฟังก์ชัน string_agg ใน PostgreSQL เพื่อให้ได้ฟังก์ชันที่คล้ายคลึงกันซึ่งมีให้โดยฟังก์ชัน group_concat() ใน MySQL