我的查询是
SELECT
id,
ARRAY_AGG(session_os)::integer[]
FROM
t
GROUP BY id
HAVING ARRAY_AGG(session_os)::integer[] && ARRAY[1,NULL]
它正在给予ERROR: array must not contain nulls
实际上我想得到像这样的行
id | Session_OS
-------|-------------
641 | {1, 2}
642 | {NULL, 2}
643 | {NULL}
请检查此处的示例数据
The &&
运营商不支持NULL
价值观。所以,你需要另一种方法。例如,您可以首先将数据连接到表中。这给你id
链接到您所需的数据。在第二步中,您可以使用这些来聚合所有值id
s.
SELECT
id,
ARRAY_AGG(session_os) -- 4
FROM t
WHERE id IN ( -- 3
SELECT
id
FROM
t
JOIN (
SELECT unnest(ARRAY[1, null]) as a -- 1
)s ON s.a IS NOT DISTINCT FROM t.session_os -- 2
)
GROUP BY id
- 创建包含相关数据的表或查询结果,包括。这
NULL
value.
- 您可以加入数据,包括。这
NULL
值,使用运算符IS NOT DISTINCT FROM
,它考虑了NULL
.
- 现在您已经获取了相关的
id
可以使用的值WHERE
filter
- 最后你可以做你的聚合
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)