我如何编写此 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 关键字。如果这是真实姓名,我建议您更改它。
我有一个数据库 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 关键字。如果这是真实姓名,我建议您更改它。