我正在尝试根据另一列中的年份减去此数据以创建新列。
数据如下所示:
+-----+-----+
|value|year|
+-----+-----+
| 2658| 2020|
| 4234| 2019|
| 5435| 2018|
+-----+-----+
我想得到这样的输出,比如 2019 - 2020 年的值:
+---------+
|new_value|
+---------+
| 1576|
+--------+
我也不想制作新表或任何东西。也最好使用 CTE 或一种可以轻松放入更大查询的方法。
答案 0 :(得分:1)
您可以使用条件聚合:
select sum(case when year = 2019 then value else - value end)
from t
where year in (2019, 2020);
答案 1 :(得分:0)
像这样(未经测试):
SELECT l.value - r.value as new_value
FROM my_table l
JOIN my_table r ON (l.year=2019 AND r.year=2020)
答案 2 :(得分:0)
假设您不只是想要 2019/2020,请使用逐个连接将表连接到自身
SELECT b.value - a.value
FROM t a
JOIN t b ON a.year + 1 = b.year