You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL中如何按IN子句内的每个值分别统计数量

在PostgreSQL中获取IN子句中每个值的单独统计数

你可以通过以下两种常用方法实现每个值的单独计数需求:

方法1:使用GROUP BY(仅返回存在匹配的数值)

这是最直接的实现方式,通过GROUP BY按目标字段分组统计:

SELECT column_id, COUNT(*) AS count
FROM table_name
WHERE column_id IN (value1, value2, value3)
GROUP BY column_id;

执行后会返回表中存在匹配记录的每个column_id及其对应计数,结果示例:

column_idcount
value110
value25
value33

如果某个指定值在表中没有对应记录,不会出现在结果集中。

方法2:生成临时数据集关联查询(返回所有指定数值,包括计数为0的)

如果需要显示所有你指定的value1/value2/value3——哪怕该值在表中没有匹配记录(计数为0),可以用VALUES子句生成临时数据集,再通过LEFT JOIN关联原表统计:

SELECT target_values.val, COUNT(table_name.column_id) AS count
FROM (VALUES (value1), (value2), (value3)) AS target_values(val)
LEFT JOIN table_name ON table_name.column_id = target_values.val
GROUP BY target_values.val;

这种方式会返回所有指定值,无匹配项的计数显示为0,结果示例:

valcount
value110
value20
value33

内容的提问来源于stack exchange,提问作者Knowledge

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 17:25:28