【发布时间】:2014-04-03 22:36:37
【问题描述】:
我想对列中具有共同值的行求和,然后根据另一列中的另一个共同值取平均值。
例如:
我想对每周和每班的工人人数求和。 (所以第 1111 班第 1 周应该有 15 名工人,第 2 周应该有 14 名工人。)然后我想要每个班次所有周的平均工人人数。 (对于1111班次,14和15的平均值是14.5)
结果应该是:
有人可以帮我处理 SQL 吗?
【问题讨论】:
我想对列中具有共同值的行求和,然后根据另一列中的另一个共同值取平均值。
例如:
我想对每周和每班的工人人数求和。 (所以第 1111 班第 1 周应该有 15 名工人,第 2 周应该有 14 名工人。)然后我想要每个班次所有周的平均工人人数。 (对于1111班次,14和15的平均值是14.5)
结果应该是:
有人可以帮我处理 SQL 吗?
【问题讨论】:
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
【讨论】: