sql >> Databasteknik >  >> RDS >> PostgreSQL

GROUP BY i UPDATE FROM-satsen

UPDATE-satsen stöder inte GROUP BY, se dokumentationen. Om du försöker uppdatera t1 med motsvarande rad från t2, skulle du vilja använda WHERE-satsen ungefär så här:

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

Om du behöver gruppera raderna från t2/t3 innan du tilldelar till t1, måste du använda en underfråga ungefär så här:

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;

Även om det enligt formuleringen inte kommer att fungera eftersom t2.column1 inte ingår i GROUP BY-satsen (det måste vara en aggregerad funktion snarare än en enkel kolumnreferens).

Annars, exakt vad är det du försöker göra här?




  1. Hur man återställer MySQL root-lösenord

  2. IIf()-funktionen kontra IIf()-satsen

  3. Lagra procedurer i phpMyAdmin

  4. Hur får jag textinnehåll från BLOB i Oracle SQL