嗯..! 2017 年 05 月 共 1 篇日志。 继续努力。

通过case when进行行转列

行转列这个问题感觉经常会出现,但我一直没有get到,这次借着群里的小伙伴再次提到,解锁这一成就 😂 样本如下: 目标结果如下: 代码如下: select username, sum(case when bookname='X' then price end) as 'X', sum(case when bookname='Y' then price end) as 'Y', sum(case when bookname='Z' then price end) as 'Z' from test group by username 说明 可以看到,关键在于case when和聚合 通过多个case when,来讲bookname列重复成多列,满足条件才显示,否则就是null: 然后根据username进行聚合,将null的部分合并,就可以得到预期结果

阅读全文 »