有没有一种方法可以获取查询未按其分组的列的平均值

时间:2019-07-09 19:49:09

标签: sql

我不知道如何解释我的问题,但是我有一个查询,在这里我需要按列分组,但另一方面,我需要获取未按列分组的平均列。

我的代码是这样的:

Select SID,PID,Cost, AVG(COST)
from catalog
group by SID,PID
ORDER by SID

所有列都在同一表中。 我该怎么做才能获得PID的AVG(费用)?

我的问题与以下考试题有关:查找SID,该SID对某些PID收取的费用高于该PID的平均费用。

该表具有SID,PID,COST列。我无法上传表格图片,因为我的帐户是新帐户,非常抱歉。

所以我的问题是我无法获取PID的AVG,这是我的下一个问题,因为我已经尝试过使用Partition进行操作,但我不知道hading子句的外观。我需要一个子查询吗?

1 个答案:

答案 0 :(得分:0)

您可以使用窗口函数将平均值添加到一行:

select SID, PID, Cost,
       avg(cost) over (partition by pid) as avg_cost_for_pid
from catalog
order by sid;