我如何编写此 SQL 查询

How can I write this SQL query

我有一个数据库 table 看起来像这样:

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 关键字。如果这是真实姓名,我建议您更改它。