Sql 尝试设置子查询以将给定类别的平均价格与所有价格进行比较
使用Postgresql 12.2 我正在制作一张表,表中列有特定的用餐实例、烹饪类型、客户id、用餐价格等。共有6种烹饪类型意大利、日本等。我需要找到每种烹饪类型的平均价格,然后显示每种类型的特定用餐id的价格高于该类型的平均价格 当我尝试这个:Sql 尝试设置子查询以将给定类别的平均价格与所有价格进行比较,sql,postgresql,subquery,Sql,Postgresql,Subquery,使用Postgresql 12.2 我正在制作一张表,表中列有特定的用餐实例、烹饪类型、客户id、用餐价格等。共有6种烹饪类型意大利、日本等。我需要找到每种烹饪类型的平均价格,然后显示每种类型的特定用餐id的价格高于该类型的平均价格 当我尝试这个: select m1.* from meals m1 join (select avg(price) from meals group by type) average on meal_id=meal
select m1.*
from meals m1
join (select avg(price)
from meals
group by type) average
on meal_id=meal_id
where price > average
group by type;
我收到错误消息:
错误:运算符不存在:整数>记录第7行:其中价格平均值
我不确定为什么会收到此错误消息。谢谢 使用窗口功能:
select m.*
from (select m.*, avg(price) over (partition by type) as type_price
from meals m
) m
where price > type_price;
谢谢你的回答!以及向我介绍窗口函数:。非常感谢。@user13717038。如果这回答了你的问题,那么你应该接受这个答案——在这种情况下没有其他答案。