我不知道如何解释我的问题,但是我有一个查询,在这里我需要按列分组,但另一方面,我需要获取未按列分组的平均列。
我的代码是这样的:
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子句的外观。我需要一个子查询吗?
答案 0 :(得分:0)
您可以使用窗口函数将平均值添加到一行:
select SID, PID, Cost,
avg(cost) over (partition by pid) as avg_cost_for_pid
from catalog
order by sid;