Postgres 中的 GROUP BY 和 COUNT
GROUP BY and COUNT in Postgres
我需要获取子查询的顶级计数,查询中填充了一些模拟值,实际上我想获取 IN 操作中的 id 的计数,在本例中为 2 . group by 是postgre 所要求的。此外,我正在使用 knex,如果它有帮助的话
select "uid", count(uid)
from "table"
where ("table"."field" not in ('v1', 'v2'))
and "table"."uid" in ('1', '2')
group by "table"."uid"
order by "table"."createdAt" desc
当前输出为
[
{
"uid": "1",
"count": 1
},
{
"uid": "2",
"count": 1
},
]
要获得查询的顶级计数,您可以使用以下语法:
select count(*) from ( %YOURQUERY% ) q;
请注意,对于内部查询,您始终需要一个别名(在本例中为 q
)。另请注意,在内部查询中,ORDER BY
子句是可以避免的。
附带说明一下,要回答您的具体问题,您只需运行以下内容:
select count(*) from table where uid in ('1', '2');
我需要获取子查询的顶级计数,查询中填充了一些模拟值,实际上我想获取 IN 操作中的 id 的计数,在本例中为 2 . group by 是postgre 所要求的。此外,我正在使用 knex,如果它有帮助的话
select "uid", count(uid)
from "table"
where ("table"."field" not in ('v1', 'v2'))
and "table"."uid" in ('1', '2')
group by "table"."uid"
order by "table"."createdAt" desc
当前输出为
[
{
"uid": "1",
"count": 1
},
{
"uid": "2",
"count": 1
},
]
要获得查询的顶级计数,您可以使用以下语法:
select count(*) from ( %YOURQUERY% ) q;
请注意,对于内部查询,您始终需要一个别名(在本例中为 q
)。另请注意,在内部查询中,ORDER BY
子句是可以避免的。
附带说明一下,要回答您的具体问题,您只需运行以下内容:
select count(*) from table where uid in ('1', '2');