我有这个问题
SELECT 1 as row, array_agg(id) as ids FROM users GROUP BY row;
结果
row | ids
---------------
1 {1,2,3,4}
我有很多结果无法放在一行中...所以我正在尝试构建一个查询来执行此操作:
row | ids
---------------
1 {1,3,4,5}
2 {4,6,9,20}
3 {21,24,26,30}
etc.....
我想将 id 限制为每行 50 个,行数越多越好。我怎样才能做到这一点?
最佳答案
row_number() over()
返回行号。然后只需执行一个子查询将它们组合在一起。将 4
更改为您实际想要的数字
select a.r, array_agg(a.id) ids
from (
select (row_number() over()-1)/4 r, id
from users) a
group by a.r;
关于sql - 我如何分组连接每一行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24154714/