使用postgresql 12.2
我正在处理一个表,表中有餐号(特定餐例)、类型(烹饪类型,如意大利菜、日本菜等)、客户id、餐价等列。
我成功地使用windows函数获得了每种烹饪类型的所有项目的列表,高于该类型的平均价格:
select m.*
from (select m.*, avg(price) over (partition by type) as avg_price_type
from meals m) m
where price > avg_price_type
;
我试着扩展它来计算每种类型的用餐ID:
select m.*, count(meal_id)
from (select m.*, avg(price) over (partition by type) as avg_price_type
from meals m) m
where price > avg_price_type
;
但我收到了错误消息:“error:列“m.meat\u id”必须出现在group by子句中,或用于聚合函数第1行:select m.*,count(meat\u id)”
我不确定是否有解决办法。
谢谢您!!
1条答案
按热度按时间e5nqia271#
我想你想要: