我想把mysql表的行转换成列,通过mysql透视表我的输入表。我的输入表有以下格式的数据。
Area Status User
-----------------------
1 Active user1
1 Failed user2
1 Success user4
2 Active user2
2 Failed user3
2 Success user4
我想要的输出格式如下
Status user1 user2 user3 user4
-----------------------------------------
Active 1 1 0 0
Failed 0 1 1 0
Success 0 0 0 2
因为我不知道用户的确切数量,所以我只想通过动态列来透视它。
2条答案
按热度按时间oewdyzsn1#
我有另一个可运行的例子给你,从
到
这里的“supplier\u id”是动态的,它可能是100万个大数据集中的一个小数据集。因此可能有supplier1、supplier99或supplier999,这取决于源表中的内容。首先,让我们创建源表:
我不认为一个select就可以做到这一点,所以需要temp表和列,下面的代码就是您需要的:
7kjnsjlb2#
在您的例子中,如果您有一个单独的用户表,您可以轻松地在用户表和状态表之间生成笛卡尔积,并进行数据透视。。如果您需要更多帮助,请告诉我。。
在我下面的一篇关于销售报表透视schenerio的博文中,我正在使用动态日历表生成带有订单类别表的笛卡尔产品。。旋转和笛卡尔积示例