我怎么写这个SQL查询[关闭]。

问题描述 投票:1回答:1

我有一个数据库表是这样的。

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

我试过不同的方法,但还是不知道该怎么做?有谁能帮忙吗?

sql reporting
1个回答
0
投票

你可以使用条件聚合。

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关键字。 如果这是实际的名字,我建议你改一下。

© www.soinside.com 2019 - 2024. All rights reserved.