计算几年内每月每件商品的平均价格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
我的 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