在计算不同的列值时使用分组依据

时间:2018-11-21 15:33:40

标签: sql oracle

我正在尝试按作业ID分组,同时让它计算作业ID每行中的毫秒数。

例如,生病有5行作业55,它们各有不同的毫秒,如.3,.5、1.5,.3,.4。我不希望它显示5行,仅显示这样的一行:55 | 3.0

这就是我已经走了多远,我只需要向正确的方向轻轻一点即可。

SELECT job_ID, AVG_REC_TIME_MILLIS, count(AVG_REC_TIME_MILLIS)
FROM job_step js
GROUP BY js.JOB_ID;

2 个答案:

答案 0 :(得分:1)

您需要SUM()而不是COUNT()SELECT语句应仅包含在涉及GROUP BY时汇总的列,因此AVG_REC_TIME_MILLIS不会感。

因此,将其从SELECT语句中删除:

SELECT job_ID, SUM(AVG_REC_TIME_MILLIS)
FROM job_step js
GROUP BY js.JOB_ID;

答案 1 :(得分:0)

如果您需要获取job_id的所有毫秒数之和,则

SELECT job_ID, sum(AVG_REC_TIME_MILLIS)
FROM job_step js
GROUP BY js.JOB_ID;

如果您需要工作步骤数,请考虑以下查询

SELECT job_ID, count(AVG_REC_TIME_MILLIS)
    FROM job_step js
    GROUP BY js.JOB_ID;