【发布时间】:2018-03-20 20:30:42
【问题描述】:
如果我的子查询 foo 释放了行:-
ID, USERS
1 {23129}
2 {23142}
3 {23300,23300}
4 {23129,23300}
如何使用窗口函数获取查询中唯一用户的计数,例如:-
SELECT ... FROM ( <subquery> ) FOO
我试过这个:-
array_length(array_agg(array_length(array(SELECT Distinct unnest(users))),1)) over(), 1)
但是得到数组维度不一样的错误
注意:我无法更改子查询来解决此问题。
我可以按如下方式获取数组中的 ID:-
string_to_array(string_agg(array_to_string(user_ids, ','), ',') over(),',')
但它们并没有区别。
【问题讨论】:
-
感谢您的回答,问题是子查询无法更改。
-
SELECT count(distinct BAR) FROM ( <subquery> ) FOO, unnest(FOO.USERS) AS BAR
标签: sql postgresql select subquery aggregate-functions