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

PostgreSQL按task_id分组统计job_id数量的查询问题

问题原因

你当前使用的普通GROUP BY语法会把分组维度(project_id, task_id, job_id)相同的行合并为单行,自然无法保留原表所有明细行,同时分组维度包含了job_id也会导致统计的是每个job_id的数量而非每个task_id下的总job数。

正确写法

你需要用PostgreSQL支持的窗口函数实现明细保留+分组统计的需求,正确查询语句如下:

select 
    project_id, 
    task_id, 
    foo, 
    bar, 
    job_id, 
    count(job_id) over (partition by task_id) as "countJobsperTask" 
from project;

逻辑说明

over (partition by task_id) 会将数据按task_id划分为多个窗口组,count(job_id)会统计每个窗口组内的job_id总数量,这个统计值会自动同步到同组内的每一条明细行上,完全符合你要保留所有原字段、同时新增分组统计列的要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 01:15:10