我的桌子看起来像这样
name value monthyear year
g1 10 March 18 2018
g1 11 March 18 2018
g1 34 March 19 2019
g1 45 March 19 2019
g2 10 April 18 2018
g1 11 May 18 2018
g1 34 May 19 2019
g1 45 June 19 2019
我需要像这样
Name March 18 March 19 April 18 May 18 May 19 June 19
g1 21 79 11 34 45
g2 10
在数据透视表中,我正在获取此信息,如何使用sql查询获取此表?请先帮助并谢谢。
答案 0 :(得分:1)
您可以在case
内使用sum
表达式。这是demo。
select
name,
sum(case when monthyear = 'March 18' then value end) as March18
sum(case when monthyear = 'March 19' then value end) as March19
..
..
from yourTable
group by
name
输出:
| name | March_18 | March_19 | April_18 | May_18 | May_19 | June_19 |
| ---- | -------- | -------- | -------- | ------ | ------ | ------- |
| g1 | 21 | 79 | | 11 | 34 | |
| g2 | | | 10 | | | |