行列转置是数据处理中比较常见的操作,因为数据存储往往和数据展示的数据结构有差异。如果数据量小的话,在EXCEL上用透视表就可以实现。但如果数据量比较大,超过100万条,就没办法了。更方便的是用python来实现,只要用pandas库的T或unstack函数就可以实现,不过也受到内存容量的限制。


待转置数据

SQL可处理更大量的数据,而且在SQL中要实现行列转置也不算很难,可以用sum(case when ..then...else 0 end)或pivot函数来实现。不过这两种方法都有个缺点,就是需要穷举待转置列的值,如例表中的食品,日用品,化妆品。。。如果这个类型多的话,太影响数据处理效率。

用动态执行语句就可以克服这个缺点,只要把这段动态执行语句粘贴进去,然后修改几个地方就可以了。

1、姓名。要修改成不打算转置的字段名。

2、柜台。要修改成准备转置的字段名。

3、姓名和柜台汇总表。要修改成准备行列转置的表名。


转置语句及结果

最后,祝您工作更高效,前途更美好!