Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

एक क्वेरी से परिणाम को PostgreSQL में समान परिणाम पंक्ति में जोड़ें - Redshift

पोस्टग्रेएसक्यूएल

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;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. php और mysql के साथ उप-मेनू के साथ गतिशील मेनू कैसे बनाएं?

  2. php mysql दोहरी तिथि सीमा

  3. दो दूरस्थ डेटाबेस के बीच एक MySQL डेटाबेस को कैसे सिंक करें (MySQL डेटाबेस प्रतिकृति तकनीक के बिना)

  4. MySQL ट्रिगर्स का उपयोग करके नया रिकॉर्ड डालने के बाद तालिका कॉलम अपडेट करें

  5. बड़ी क्वेरी स्थानांतरण