列平均值

Mr.*_*Jin 0 sql

我有下表

Meal         Item            Cost
Breakfast    Oatmeal          5
Breakfast    Omelette         7
Lunch        Clam Chowder    10
Lunch        Steak           12
Lunch        Burger          9
Dinner       Clam Chowder    10
Dinner       Steak           12
Dinner       Burger          9
Dessert      Apple Pie       6
Dessert      Chocolate Cake  5
Run Code Online (Sandbox Code Playgroud)

我需要在SQL查询中显示Meal,Item和average_meal_cost。平均用餐成本给出了与用餐相关的所有物品的总体平均成本。例如,前2行在平均值列中将显示6。

Gor*_*off 5

可以avg()用作窗口函数:

select t.*, avg(cost * 1.0) over (partition by meal) as avg_meal_cost
from t;
Run Code Online (Sandbox Code Playgroud)

* 1.0是因为某些数据库将整数的平均值计算为整数。