3
我在postgresql-9.4.2中有一個包含數組列的表。在psql中創建「counter」數組
create schema test_schema;
create table test_schema.test_table;
(
array_column int[]
);
insert into test_schema.test_table values
(ARRAY[5,12,6,2]),
(ARRAY[51,4,2]),
(ARRAY[2]),
(ARRAY[3,16]);
這將是這樣的
| array_column |
| integer[] |
--------------------
1 | {5,12,6,2} |
2 | {51,4,2} |
3 | {2} |
4 | {3,16} |
我想查詢此表,列添加到我的查詢這是一個數組,從1數到數組的大小。
我已想出如何創建具有相同的尺寸的陣列如下所示
select
array_column,
array_fill(1,array[array_length(array_column,1)],array[1]) as counter
from
test_schema.test_table;
其返回以下結果
| array_column | counter |
| integer[] | integer[] |
---------------------------------
1 | {5,12,6,2} | {1,1,1,1} |
2 | {51,4,2} | {1,1,1} |
3 | {2} | {1} |
4 | {3,16} | {1,1} |
我要帶計數器的滾動總和,其會給我想要的結果,但我無法弄清楚如何去做。
這是期望的結果:
| array_column | counter |
| integer[] | integer[] |
---------------------------------
1 | {5,12,6,2} | {1,2,3,4} |
2 | {51,4,2} | {1,2,3} |
3 | {2} | {1} |
4 | {3,16} | {1,2} |
謝謝您的幫助
'generate_scripts'是簡單,但請注意,OP可以不想消除'array_column'中的重複內容 –
@ClodoaldoNeto我不知道這實際上消除了重複項,我修改了第1行的值到ARRAY [5,5,5,5],而klin的答案仍然有效 – Dan
@Dan我的意思是行之間有重複數組(相同數組的2 +行) –