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

如何在PostgreSQL中统计各列值为Y的记录总数

PostgreSQL电影分类统计SQL方案

假设你存储电影信息的表名为movies,如果实际表名不同可直接替换SQL中的对应名称:

方法1:UNION ALL实现(通用性强、逻辑直观)

该方法不依赖PostgreSQL专属语法,适配绝大多数SQL数据库:

SELECT 'Horror' AS "Category", COUNT(*) AS "count"
FROM movies
WHERE Horror = 'Y'
UNION ALL
SELECT 'Comedy' AS "Category", COUNT(*) AS "count"
FROM movies
WHERE Comedy = 'Y';

方法2:unnest数组实现(PostgreSQL专属、扩展性好)

如果后续新增分类列,只需要修改数组里的分类名称和过滤条件即可:

SELECT 
  unnest(ARRAY['Horror', 'Comedy']) AS "Category",
  unnest(ARRAY[
    COUNT(*) FILTER (WHERE Horror = 'Y'),
    COUNT(*) FILTER (WHERE Comedy = 'Y')
  ]) AS "count"
FROM movies;

两种方法执行后都会输出你要求的两列结果,按你给出的示例数据输出如下:

Categorycount
Horror3
Comedy2

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 06:18:05