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

PostgreSQL查询:统计各唯一名称对应Value>0的行数

PostgreSQL查询:按名称统计Value大于0的行数

你可以通过在分组查询中结合CASE表达式和聚合函数实现需求,以下是两种可行写法:

方法一:使用COUNT + CASE

SELECT 
    "Name",
    COUNT(CASE WHEN "Value" > 0 THEN 1 END) AS positive_value_count
FROM 
    your_table_name  -- 替换为你的实际表名
GROUP BY 
    "Name"
ORDER BY 
    "Name";

逻辑说明:

  • CASE WHEN "Value" > 0 THEN 1 END:仅当Value大于0时返回1,否则返回NULL
  • COUNT()函数会自动忽略NULL值,因此最终统计的就是每个名称下Value>0的行数
  • 对于所有Value都不大于0的名称(比如Ryan),COUNT结果会是0,符合你的期望

方法二:使用SUM + CASE

SELECT 
    "Name",
    SUM(CASE WHEN "Value" > 0 THEN 1 ELSE 0 END) AS positive_value_count
FROM 
    your_table_name  -- 替换为你的实际表名
GROUP BY 
    "Name"
ORDER BY 
    "Name";

逻辑说明:

  • 满足Value>0条件时加1,不满足时加0,通过SUM求和得到符合条件的总行数
  • 这种写法和方法一效果完全一致,可根据个人习惯选择

注意:请将SQL中的your_table_name替换为你的实际表名;另外由于Name和Value是带引号的标识符,说明你的表字段名是大小写敏感的,查询时需保持一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 04:16:10