sql - Can you run an UPDATE and WITH together? -


i trying run update on table, error

error:  syntax error @ or near "update" 

the query is:

with   first_users (     select min(created_at) first_at,     company_id company_id     users     group company_id   )  update companies  set first_seen_at = least(first_seen_at,     (select first_at first_users id = first_users.company_id)  ); 

can not run updates , withs together? seems weird.

my query more complex, why using syntax. when run select * first_users instead of update, works, there's wrong update keyword or something.

i suggest changing update . . . from in case. there no reason update records not match. so:

update companies    set first_seen_at = u.first_at    (select company_id, min(created_at) first_at          users          group company_id         ) u    companies.id = u.company_id ,          u.first_seen_at < companies.first_seen_at; 

postgres started supporting ctes updates in version 9.1 (http://www.postgresql.org/docs/9.1/static/sql-update.html vs http://www.postgresql.org/docs/9.0/static/sql-update.html). method better because filters rows before update.


Comments

Popular posts from this blog

c++ - llvm function pass ReplaceInstWithInst malloc -

java.lang.NoClassDefFoundError When Creating New Android Project -

Decoding a Python 2 `tempfile` with python-future -