计算几年内每月每件商品的平均价格Postgresql

Calculate Average of Price per Items per Month in a Few Years Postgresql

我的 postgresql 数据库中有这个 table,

item_code |    date    | price
==============================
aaaaaa.1  |2019/12/08  | 3.04
bbbbbb.b  |2019/12/08  | 19.48
261893.c  |2019/12/08  | 7.15
aaaaaa.1  |2019/12/17  | 4.15
bbbbbb.2  |2019/12/17  | 20
xxxxxx.5  |2019/03/12  | 3
xxxxxx.5  |2019/03/18  | 4.5

我如何计算一年中每个月每个项目的平均值。所以我得到的结果是这样的:

item_code |  month  | price
==============================
aaaaaa.1  | 2019/12 | 3.59
bbbbbb.2  | 2019/12 | 19.74
261893.c  | 2019/12 | 7.15
xxxxxx.5  | 2019/03 | 3.75

我已经尝试查看并应用许多替代方案,但我仍然不明白这一点,非常感谢您的帮助,因为我是 postgresql 的新手。

我不明白这个问题与 移动 平均值有什么关系。看来你只是想要 group by:

select item_code, date_trunc('month', date) as date_month, avg(price) as price
from mytable
group by item_code, date_month

这将 date_month 作为 date,截断到该月的第一天 - 我发现它比您建议的格式更有用。但它确实是你想要的:

to_char(date, 'YYYY/MM') as date_month