sql - 如何从表中插入数据并对其进行透视
问题描述
我有 2 张桌子。
Table1 有大约 2k 列,如下所示:
Id A B C D E F G H...........................................AA
1
2
Table2 有 2 列,如下所示:
Id Category
1 A
1 C
1 AA
2 B
2 D
我想在 table1 中插入和旋转 table2 的数据
表 1 最终应该看起来像
Id A B C D E F G H...........................................AA
1 1 0 1 0 0 0 0 0...........................................0
2 0 1 1 0 0 0 0 0...........................................0
我不确定如何在 sql 中执行此操作。非常感谢您对此的任何帮助。
解决方案
关于 sql pivot 命令的绝对愚蠢的事情是你必须知道/列出每一列。出于某种原因,Microsoft Access 有一种非常优雅的方式来旋转所有内容。因此,我什至不会费心使用 pivot 命令。Intead 只是做大量的案例和分组
select
id,
sum(case when category = 'A' then 1 else 0 end) as 'A',
sum(case when category = 'B' then 1 else 0 end) as 'B',
sum(case when category = 'C' then 1 else 0 end) as 'C',
etc...
from table2
group by id
我同意其他一些评论。如果您的情况允许,请考虑使用具有出色枢轴/取消枢轴命令的 Excel PowerQuery 或使用基于 gui 的工具,例如具有枢轴/转置工具的 Alteryx。快得多!
推荐阅读
- python - 如何通过 API Gateway 从 Jupyter Notebook 更新 DynamoDB?
- javascript - 打字稿和 ...args
- r - 如何使用 Shiny R 中的 downloadHandler 将多个 csv 文件下载到 zip 中
- html - 为 flexbox 列表设置固定间距
- dataframe - 将 Pyspark 数据帧写入 Hive 表 - 未定义名称“数据库”错误
- arrays - 如何将二维数组分配给固定语句中的指针
- excel - Notepad++ 或 Excel:转置两列,批量处理多个文件
- html - 除非指针移动到图像的下半部分,否则什么会阻止悬停文本(居中)出现在图像上?
- json - 使用jq找到密钥路径后如何打印所有内容?
- python - 从压缩表示转换张量的最佳方法