sql >> Base de Datos >  >> RDS >> PostgreSQL

GROUP BY en la cláusula UPDATE FROM

La instrucción UPDATE no es compatible con GROUP BY, consulte la documentación. Si está tratando de actualizar t1 con la fila correspondiente de t2, querrá usar la cláusula WHERE algo como esto:

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

Si necesita agrupar las filas de t2/t3 antes de asignarlas a t1, deberá usar una subconsulta como esta:

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;

Aunque tal como está formulado, eso no funcionará porque t2.column1 no está incluido en la declaración GROUP BY (tendría que ser una función agregada en lugar de una simple referencia de columna).

De lo contrario, ¿qué estás tratando de hacer aquí exactamente?