पोस्टग्रेएसक्यूएल
SELECT
a,
STRING_AGG('(' || c || ',' || b || ')', ' ; ')
FROM
tbl
GROUP BY
a;
संपादित करें :9.0 से पहले PostgreSQL के संस्करणों के लिए (जब STRING_AGG पेश किया गया था) और 8.4 से पहले भी (जब ARRAY_AGG जोड़ा गया था) आप अपना खुद का बना सकते हैं कस्टम समुच्चय फ़ंक्शन ।
2 संपादित करें :8.0 से पहले के संस्करणों के लिए (शायद Amazon Redshift किसी तरह PostgreSQL 7.4 पर आधारित है) $$ सिंटैक्स समर्थित नहीं है, इसलिए फ़ंक्शन बॉडी को उद्धरणों में संलग्न करने की आवश्यकता है, और शरीर के अंदर उद्धरणों से बचने की आवश्यकता है।
CREATE FUNCTION cut_semicolon(text) RETURNS text AS '
BEGIN
RETURN SUBSTRING($1 FROM 4);
END;
' LANGUAGE 'plpgsql' IMMUTABLE;
CREATE FUNCTION concat_semicolon(text, text) RETURNS text AS '
BEGIN
RETURN $1 || '' ; '' || $2;
END;
' LANGUAGE 'plpgsql' IMMUTABLE;
CREATE AGGREGATE concat_semicolon(
BASETYPE=text,
SFUNC=concat_semicolon,
STYPE=text,
FINALFUNC=cut_semicolon,
INITCOND=''
);
फिर इसके बजाय उस समुच्चय का उपयोग करें।
SELECT
a,
CONCAT_SEMICOLON('(' || c || ',' || b || ')')
FROM
tbl
GROUP BY
a;
MySQL
SELECT
a,
GROUP_CONCAT(CONCAT('(', c, ',', b, ')') SEPARATOR ' ; ')
FROM
tbl
GROUP BY
a;