sql - 如何在sql中获取列值比较?
问题描述
我有一张如下表。该表包含一年中每一天的产品价格。我想逐年获得每天的价格变化。
Product Year 1Jan 2Jan .................... 31Dec
A 2018 10 20 .................... 120
A 2019 130 150 .................... 200
B 2018 15 23 .................... 90
B 2019 113 130 .................... 220
我想按顺序将列与年份重叠进行比较,并获得如下输出。
• 对于 2018 年,通过从 1 月 1 日(1 月 2 日至 1 月 1 日)否定 2 Jan 的值,我们得到 2 Jan 的新值。
• 对于 2018 年,通过从 1 月 2 日(1 月 3 日至 1 月 2 日)否定 3Jan 的值,我们得到新的 3 Jan 值。
• 对于 2018 年,通过从 12 月 30 日(12 月 31 日至 12 月 30 日)否定 31Dec 的值,我们得到 12 月 31 日的新值
• 现在,对于 2019 年,通过从 1 月 1 日(2019 年)否定 31 Dec(2018 年)的值,我们得到 2019 年 1 月 1 日的新值
因此,简而言之,列的值是其值与前一天值的差值。
Product Year 1Jan 2Jan .................... 31Dec
A 2018 10 10 .................... 15 (just assume value of 30Dec column is 105)
A 2019 10 20 .................... 10 (just assume value of 30Dec column is 190)
B 2018 15 8 .................... 8 (just assume value of 30Dec column is 82)
B 2019 23 17 .................... 10 (just assume value of 30Dec column is 210)
如果事情不清楚,请告诉我。
解决方案
虽然在逻辑上这个查询没有任何内容,但你仍然需要努力编写它 -
SELECT Product
,Year
,1Jan
,2Jan - 1Jan 2Jan
,3Jan - 2Jan 3Jan
.
.
.
,31Dec - 30Dec 31Dec
FROM YOUR_TAB
ORDER BY Product
,Year;
推荐阅读
- python - 如何将 excel 或 csv 文件转换为 django 中的 html 表?
- r - ggplot barchart“错误:提供给连续刻度的离散值”在重新排序计数的 x 轴上
- css - 你知道为什么关闭按钮和关闭图标没有出现在大屏幕上吗?
- ssis - 如何将特定字符串(dd-jun-yyyy hh:mm:ss)转换为 ssis 中的日期格式
- reactjs - ReactJS 函数式还是纯无状态组件?
- javascript - JQuery - 防止多级下拉菜单在悬停时消失
- java - maven-pmd-plugin 执行失败,原因是“类文件中非本机或抽象的方法中缺少代码属性”
- python - Pyinstaller 致命错误
- php - 在 React-Native 中显示 JSON 数据而不使用列表?
- networkx - 如何绘制具有相同节点和边位置的全息视图/散景的networkx图?