【问题标题】:Summing and averaging rows with values in common (Oracle)对具有共同值的行求和和平均 (Oracle)
【发布时间】:2014-04-03 22:36:37
【问题描述】:

我想对列中具有共同值的行求和,然后根据另一列中的另一个共同值取平均值。

例如:

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

结果应该是:

有人可以帮我处理 SQL 吗?

【问题讨论】:

    标签: sql oracle sum average


    【解决方案1】:
    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-01
      • 2016-02-07
      • 2021-04-25
      相关资源
      最近更新 更多