对具有共同值的行进行求和和平均(Oracle)

时间:2014-04-03 22:36:37

标签: sql oracle sum average

我想在列中具有公共值的SUM行,然后根据另一列中的另一个公共值取平均值。

例如:

我想提及每周和每班的工人数量。 (所以班次1111第1周应该有15名工人,第2周应该有14名工人。)然后我想要每个班次的所有周的平均工人数。 (对于班次1111,平均14和15是14.5)

结果应该是:

有人可以帮我解决SQL吗?

1 个答案:

答案 0 :(得分:0)

select
    shift, avg(num_workers) avg_workers
from
    (
        select
            shift, week_number, sum(current_workers) num_workers
        from
            work_sheet t
        group by
            shift, week_number
    )
group by
    shift

我认为这也等同于:

select
    shift, sum(current_workers)/count(distinct week_number) avg_workers
from
    work_sheet t
group by
    shift