Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Tambahkan hasil dari kueri ke baris hasil yang sama di PostgreSQL - Redshift

PostgreSQL

SELECT
  a,
  STRING_AGG('(' || c || ',' || b || ')', ' ; ')
FROM
  tbl
GROUP BY
  a;

Sunting :Untuk versi PostgreSQL sebelum 9.0 (ketika STRING_AGG diperkenalkan) dan bahkan sebelum 8.4 (ketika ARRAY_AGG ditambahkan), Anda dapat membuat fungsi agregat khusus .

Edit 2 :Untuk versi sebelum 8.0 (mungkin Amazon Redshift entah bagaimana didasarkan pada PostgreSQL 7.4) sintaks $$ tidak didukung, sehingga badan fungsi harus diapit tanda kutip, dan tanda kutip di dalam isi harus diloloskan.

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=''
);

Kemudian gunakan agregat itu sebagai gantinya.

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. Java/Mysql..SQLException:Sebuah tabel harus memiliki setidaknya 1 kolom SQLState:42000 VendorError:1113

  2. Kueri Basis Data Kompleks di yii2 dengan Rekaman Aktif

  3. Bagaimana cara menulis perbandingan aman nol <=> dalam SQL murni?

  4. Pilih catatan bulan saat ini mysql dari kolom stempel waktu

  5. Kolom Tidak Diketahui Di Mana Klausa