SQL

STRING_AGG / GROUP_CONCAT

admin by @admin ADMIN
4d ago
May 31, 2026
Public
0 0 up · 0 down Sign in to vote
Concatenate values across a group into a single delimited string. PostgreSQL/MSSQL use `STRING_AGG`; MySQL uses `GROUP_CONCAT`; SQLite has both.
SQL
Raw
-- PostgreSQL / SQL Server (string_agg)
SELECT user_id,
       STRING_AGG(name, ', ' ORDER BY name) AS tag_list
FROM   user_tags
GROUP  BY user_id;

-- MySQL (group_concat) — same idea, slightly different syntax
SELECT user_id,
       GROUP_CONCAT(name ORDER BY name SEPARATOR ', ') AS tag_list
FROM   user_tags
GROUP  BY user_id;

-- DISTINCT + custom separator + sort
SELECT order_id,
       STRING_AGG(DISTINCT product_name, ' | ' ORDER BY product_name)
FROM   order_items
GROUP  BY order_id;

-- ⚠️ MySQL truncates at group_concat_max_len (default 1024).
-- For long lists:  SET SESSION group_concat_max_len = 1000000;
Tags

Save your own code snippets

Create a free account and build your private vault. Share publicly whenever you want.