postgresql多维数组 - 过滤

时间:2017-06-22 20:35:03

标签: postgresql multidimensional-array

我有一个包含数十亿行的非常大的数据集。如果可能的话,我想在没有UNNEST的情况下访问多维数组中的某些元素(查询需要永远运行)。请注意我使用的是postgresql 8.2

示例:

SELECT
 x[1:3][1:1]
FROM
(SELECT
'{{1,2,3,4},{5,6,1,8},{9,10,11,1}}'::INT[] AS X

UNION ALL

SELECT
'{{3,2,3,4},{5,6,1,8},{1,10,11,1}}'::INT[] AS X
) AS A
WHERE x[1:3][1:1] && '{1}'::INT[]

返回

{{1},{5},{9}}

{{3},{5},{1}}

我如何过滤这个只返回每个数组的第一个值,如果它匹配的位置? (在这种情况下为1)

我想输出:

import numpy as np

column_names = ['a', 'b', 'c']
row_names    = ['1', '2', '3']

matrix = np.reshape((1, 2, 3, 4, 5, 6, 7, 8, 9), (3, 3))

# TODO: insert magic here

matrix['3']['a']  # 7

matrix.dtype = [(n, matrix.dtype) for n in column_names]

谢谢,

0 个答案:

没有答案