我有一些名为 items 的表,想要从中获取一些行并在单个查询中计数(全部),现在我正在尝试这样的操作:
SELECT
COUNT(*) as count,
(SELECT * FROM items WHERE ...) as items
FROM items
但我得到了子查询必须仅返回一列 error
物品表:
Id| Comment
1 | "comment1"
2 | "comment2"
3 | "comment3"
4 | "comment4"
5 | "comment5"
我希望得到这样的结果:
[{
count: 5,
items: [
{
id: 1,
comment: "comment1"
}
...other 4 comments
]
}]
有什么好的方法可以做到这一点?
您可以尝试以下查询(Postgres 9.5 及更高版本):
select
json_agg(d)
from
(SELECT count(*) as "Count", json_agg(t) as "Items"
FROM (select * from items) t
) d
DB-Fiddle 示例
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)