【发布时间】:2021-08-23 09:43:54
【问题描述】:
我的任务是计算 3 个条件的一部分中 3 列的平均值。
这是一个源表:
我需要选择主要需求(工作或休闲)的平均值,按不同的生命年龄(年轻、活跃或老年人)、性别和工作状态分组。
为此,我使用窗口函数应用以下查询:
SELECT
working, sex, age,
ROUND(AVG(primaryNeeds) OVER(w),1) primaryNeeds,
ROUND(avg(work) OVER(w),1) work,
ROUND(avg(other)OVER(w),1) other
FROM
demography
WINDOW w AS (PARTITION BY 'age', 'working', 'sex' ORDER BY 'age', 'working', 'sex')
但在结果选择中计算的平均值未按“年龄”、“工作”、“性别”列分组。
我做错了什么?
【问题讨论】:
-
请避免将数据作为图像。您可以使用
|创建/格式化表格。 -
PARTITION BY X ORDER BY X没有任何意义 - 根据定义,您知道分区中的所有行对这些表达式共享相同的值,因此它们不能应用任何有意义的排序区别
标签: sql window-functions