sql - 使用 SQL 计算基于类别的价格变化百分比
问题描述
我正在用 SQL 编写一个查询,但还没有弄清楚......
我的表如下所示:
Category Price Date
Cat1 20 2019-04
Cat2 12 2019-04
Cat3 5 2019-04
Cat1 23 2020-04
Cat2 17 2020-04
Cat3 8 2020-04
我想得到一个显示这个的表格:
Cat Pct_change Period
Cat 1 0.15 2019-2020
Cat 2 0.41 "
等等。
我可以按类别获取此类别,但我有 100 个类别,无法手动执行此操作。如果能同时看到这两种价格,那就太好了。我不(不能)允许的是生成新表只是保存数据以加入单独的表......
谢谢!!
解决方案
您可以使用first_value()
:
select distinct category, min(date), max(date),
(-1 + first_value(price) over (partition by category order by date desc) /
first_value(price) over (partition by category order by date asc)
) as percent_change
from t;
推荐阅读
- javascript - 如何在 Angular 中定义嵌套对象模型?
- java - 为什么我的返回值在 Java 中的对象中会自行增加?
- javascript - TypeError:无法读取空错误的属性“addEventListener”
- vue.js - 获取在第三次 nuxt-link 单击而不是第二次 nuxt-link 单击后填充的 vuex 存储
- uibutton - 斯威夫特 5 | 如何将附加参数传递给选择器@objc
- python - 有没有办法解决这个错误需要一些好的见解
- android - 您如何将 Compose LazyColumn 与 Coroutines/Room 数据库一起使用?
- html - “booktabs”就像降价表
- laravel - 使用 foreach 和自动合并实现 maatwebsite 标题
- ios - 如何在黑色背景上实现纯黑色 UIVisualEffectView?