PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

GROUP BY в клауза UPDATE FROM

Инструкцията UPDATE не поддържа GROUP BY, вижте документацията. Ако се опитвате да актуализирате t1 със съответния ред от t2, бихте искали да използвате клаузата WHERE нещо подобно:

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

Ако трябва да групирате редовете от t2/t3, преди да присвоите към t1, ще трябва да използвате подзаявка нещо подобно на това:

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;

Въпреки че както е формулирано, това няма да работи, тъй като t2.column1 не е включен в оператора GROUP BY (това трябва да бъде агрегатна функция, а не обикновена препратка към колона).

Иначе какво точно се опитваш да правиш тук?




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Създайте уникално ограничение с нулеви колони

  2. Как да работите с PostgreSQL бази данни

  3. Как да предам парола на pg_dump?

  4. Заявка за тип данни на Postgres JSON Rails

  5. Как да променя стойността на колоната по подразбиране в PostgreSQL?