我有一个数据库表是这样的。
Group - Year - Value
-------------------------------
Group A 2018 200
Group A 2019 300
Group A 2020 400
Group B 2019 500
Group B 2020 300
我想写一个SQL查询或者类似的东西 或者用一个报表工具来生成一个报表,如下图所示。
Group 2018 2019 2020
----------------------------------
Group A 200 300 400
Group B ---- 500 300
我试过不同的方法,但还是不知道该怎么做?有谁能帮忙吗?
你可以使用条件聚合。
select group,
sum(case when year = 2018 then value end) as value_2018,
sum(case when year = 2019 then value end) as value_2019,
sum(case when year = 2020 then value end) as value_2020
from t
group by group;
注意: group
是一个非常糟糕的列名,因为它是一个SQL关键字。 如果这是实际的名字,我建议你改一下。