postgresql 在PostGres中使用VIEWs

gpfsuwkq  于 5个月前  发布在  PostgreSQL
关注(0)|答案(1)|浏览(72)

我需要为PostGres数据库编写一个SQL查询。目标是根据表的内容创建一个视图。
这是我的起始表:

Rank  Value
 1      4
 2      5
 3      8
 4      11
 5      19
 6      32
 7      55

字符串
这是我想建立的观点:

Rank  Value  SumUpTo
 1      4       4
 2      5       9
 3      8       17
 4      11      28
 5      19      47
 6      32      79
 7      55      134


列Rank和Value只是从原始表中复制的。列SumUpTo是通过将原始表中从秩1到当前秩的所有值相加来计算的。
我尝试过这些类型的查询,但都失败了:

CREATE VIEW myview AS SELECT rank,value,(SELECT SUM(value) FROM mytable WHERE (rank<rank)) as SumUpTo FROM mytable;
CREATE VIEW myview AS SELECT rank,value,(SELECT SUM(value) FROM mytable WHERE (rank<mytable.rank)) as SumUpTo FROM mytable;


如何编写查询以获得我想要的结果?

vkc1a9a2

vkc1a9a21#

使用sum解析函数:

SQL> select rank, value,
  2    sum(value) over (order by rank) sumUpTo
  3  from test
  4  order by rank;

      RANK      VALUE    SUMUPTO
---------- ---------- ----------
         1          4          4
         2          5          9
         3          8         17

SQL>

字符串
自己添加create view;如果需要,请参阅fiddle

相关问题