PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

GROUP BY dalam klausa UPDATE FROM

Pernyataan UPDATE tidak mendukung GROUP BY, lihat dokumentasi. Jika Anda mencoba memperbarui t1 dengan baris yang sesuai dari t2, Anda ingin menggunakan klausa WHERE seperti ini:

UPDATE table t1 SET column1=t2.column1
FROM   table t2
JOIN   table t3 USING (column2)
WHERE  t1.column2=t2.column2;

Jika Anda perlu mengelompokkan baris dari t2/t3 sebelum menetapkan ke t1, Anda harus menggunakan subquery seperti ini:

UPDATE table t1 SET column1=sq.column1
FROM  (
   SELECT t2.column1, column2
   FROM   table t2
   JOIN   table t3 USING (column2)
   GROUP  BY column2
   ) AS sq
WHERE  t1.column2=sq.column2;

Meskipun seperti yang dirumuskan, itu tidak akan berfungsi karena t2.column1 tidak disertakan dalam pernyataan GROUP BY (harus berupa fungsi agregat daripada referensi kolom sederhana).

Jika tidak, apa sebenarnya yang Anda coba lakukan di sini?




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Perbaiki database yang rusak postgresql

  2. Mengubah banyak baris menjadi kolom di PostgreSQL

  3. Berapa banyak ruang disk yang diperlukan untuk menyimpan nilai NULL menggunakan DB postgresql?

  4. Memulai dan mengisi wadah Postgres di Docker

  5. INSERT COMMAND ::ERROR:nilai kolom tidak ada