如何将文本值聚合到单个记录中

时间:2016-07-04 19:21:29

标签: sql postgresql

例如网站流量日志

User  Site
1     Example.com
2     Example.com
3     Google.com

我想问一下数据库“给我一个访问每个网站的所有用户的视图”并输出这样的内容

Site           Ids
Example.com    1,2
Google.com     3,

我不介意它是否需要一些python或pl / pgsql。任何可以引导我朝着正确方向发展的想法。

1 个答案:

答案 0 :(得分:2)

您可以使用array_agg方法定义here。像

with a (user_id, site) as (values(1, 'Example.com'), (2, 'Example.com'), (3, 'Google.com'))
select site, array_agg(user_id) 
from a
group by 1;

    site     | array_agg 
-------------+-----------
 Google.com  | {3}
 Example.com | {1,2}