我有一个数据集,格式如下:
Customer_ID Var1 Var2 Marketing_Channel
1 B C D
1 B C E
2 F G H
2 F G I
2 F G J
我想要以下格式的结果:
Customer_ID Var1 Var2 Marketing_Channel Marketing_Channel1 Marketing_Channel2
1 B C D E
2 F G H I J
因此,简而言之,我只想为customer_ID获得一行,其中列出了该客户的所有可能的营销渠道。我想在SQL/SAS中执行此操作。我该怎么做
如有任何帮助,将不胜感激
为此使用PROC TRANSPORTSE。
proc transpose data=have out=want prefix=marketing_channel;
by customer_id var1 var2;
var marketing_channel;
run;
这被称为将数据从"长"格式"重塑"为"宽"格式。
在本机SAS中,您可以使用proc transpose。查看SAS文档。另请参阅http://ats.ucla.edu/stat/sas/modules/longtowide_data.htm
[如果你坚持使用SQL,不确定最简单的方法,对不起。你可能会在另一个StackExchange网站上得到更好的回答,因为你的问题更多的是关于编码而不是统计方法。]
SELECT Customer_ID, Var1, Var2,COLLECT(Marketing_Channel) AS Channels FROM table_name GROUP BY Customer_ID;
我希望这能回答你的问题。