English 中文(简体)
更新价值以达到最高价值+1
原标题:PostgreSQL update value to max value + 1

I need to update below table so that value in column 3 vould be equal to max value +1 (for each A where B = 339)

            A  |        B    |   C  
         14430 |         339 |    -1     (value c should = 3)
         14430 |          80 |     0
         14430 |         262 |     1
         14430 |          39 |     2

         14431 |         339 |    -1     (value c should = 1)           
         14431 |          41 |     0

         14432 |         339 |    -1     (value c should = 0)   

         14433 |         284 |     0 
         14452 |         298 |     0
         14452 |         181 |     1

         14490 |         339 |    -1     (value c should = 0)   

         14491 |         339 |    -1     (value c should = 0) 

         14492 |         339 |    -1     (value c should = 0) 
最佳回答
UPDATE tbl
SET    c = x.new_c
FROM (
    SELECT a, max(c) + 1 AS new_c
    FROM   tbl
    -- WHERE  b <> 339  -- exclude b = 339 from calculating the maximum?
    GROUP  BY a
    ) x
WHERE  tbl.b = 339
AND    tbl.a = x.a
AND    tbl.c IS DISTINCT FROM x.new_c  -- to avoid pointless updates
问题回答

暂无回答




相关问题
摘录数据

我如何将Excel板的数据输入我的Django应用? I m将PosgreSQL数据库作为数据库。

Postgres dump of only parts of tables for a dev snapshot

On production our database is a few hundred gigabytes in size. For development and testing, we need to create snapshots of this database that are functionally equivalent, but which are only 10 or 20 ...

How to join attributes in sql select statement?

I want to join few attributes in select statement as one for example select id, (name + + surname + + age) as info from users this doesn t work, how to do it? I m using postgreSQL.

What text encoding to use?

I need to setup my PostgreSQL DB s text encoding to handle non-American English characters that you d find showing up in languages such as German, Spanish, and French. What character encoding should ...

SQL LIKE condition to check for integer?

I am using a set of SQL LIKE conditions to go through the alphabet and list all items beginning with the appropriate letter, e.g. to get all books where the title starts with the letter "A": SELECT * ...

热门标签