PostgreSQL如何实现从一个表的字段分组后取最大值更新另一个表关联的字段?
1.26K 次浏览
在PostgreSQL数据库中,有一个类似如下的字段:
id integer
sumqty numeric
maxqty numeric
列id
、sumqty
这两列会被其他函数或者外部程序频繁更新。现在需要编写一个SQL语句,来按id
分组并获取sumqty
列的最大值,最后将其更新到axqty
列。
比如有如下的示例数据:
id, sumqty, maxqty
5 20
5 10
5 45
3 20
1 12
1 2.5
期望得到的更新数据:
id, sumqty, maxqty
5 20 45
5 10 45
5 45 45
3 20 20
1 12 12
1 2.5 12
尝试着编写如下的SQL语句来更新maxqty
列的数据:
update A set maxqty= (select MAX(sumqty) OVER (PARTITION BY id))
但执行结果不正确,应该如何编写PostgreSQL数据库的SQL语句以实现以上的需求呢?