update right postgres example concatenar postgresql group-by

right - substring postgresql



GROUP BY en la cláusula UPDATE FROM (1)

Realmente necesito hacer algo como eso:

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

Pero postgres está diciendo que tengo un error de sintaxis sobre la cláusula GROUP BY. ¿Cuál es una manera diferente de hacer esto?


La instrucción UPDATE no es compatible con GROUP BY, consulte la documentación . Si está intentando actualizar t1 con la fila correspondiente de t2, desearía 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 asignarlo a t1, necesitará 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 como se formuló, no funcionará porque t2.column1 no se incluye en la instrucción GROUP BY (tendría que ser una función agregada en lugar de una simple referencia de columna).

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