Mysql 在SQL中透视简单表
我有一个简单的两列表,我希望将行透视到列中,以便此表:Mysql 在SQL中透视简单表,mysql,sql,pivot,etl,Mysql,Sql,Pivot,Etl,我有一个简单的两列表,我希望将行透视到列中,以便此表: List Count ---- ----- Bugs 3 Changes 5 Bugs Changes ---- ----- 3 5 可以如下表所示: List Count ---- ----- Bugs 3 Changes 5 Bugs Changes ---- --
List Count
---- -----
Bugs 3
Changes 5
Bugs Changes
---- -----
3 5
可以如下表所示:
List Count
---- -----
Bugs 3
Changes 5
Bugs Changes
---- -----
3 5
我曾尝试使用ETL工具来解压列,但最终的结果是:
Bugs Changes
---- -----
3 null
null 5
有什么方法可以在SQL中实现此透视吗?您可以这样进行聚合:
select sum(case when List = 'Bugs' then Count else 0 end) as Bugs,
sum(case when List = 'Changes' then Count else 0 end) as Changes
from table t
where List in ('Bugs', 'Changes');
你试着点击[PIVOT ]标签吗?考虑在应用程序代码中处理数据显示的问题,或者只是旋转你的监视器。这个枢轴工作了,但是我在两个列中接收到一个空值,在这里我期望3和5是。有什么想法吗?在('Bug','Changes')中添加where列表;不为我工作。@BobDuncan。我怀疑你的
列表
的名字中有空格。你能澄清一下@Yogesh吗?我的代码如下所示:选择MAX(当idList='Bugs'然后curcount end时的case)作为bug,MAX(当idList='Changes'然后curcount end时的case)作为idList所在的tablename的变更('Bugs','Changes')代码>@BobDuncan。您的代码看起来很好,一点问题也没有。您能编辑表的实际数据或结构吗?