sql - PostgreSQL中具有多列的数据透视表
问题描述
我正在寻找一个查询,如果可能的话,我可以使用它来使用动态列对表数据进行透视。
这是用例示例,我有一个类似的表:
C_id | J_id | 做过 | code_id | 数量 |
---|---|---|---|---|
1 | 100 | 10 | 301 | 100 |
1 | 100 | 10 | 302 | 105 |
1 | 100 | 10 | 303 | 100 |
1 | 100 | 10 | 304 | 150 |
1 | 100 | 11 | 301 | 100 |
1 | 100 | 11 | 302 | 105 |
1 | 100 | 11 | 303 | 100 |
1 | 100 | 11 | 304 | 150 |
1 | 100 | 11 | 305 | 100 |
1 | 101 | 10 | 301 | 100 |
1 | 101 | 10 | 302 | 105 |
1 | 101 | 12 | 303 | 100 |
1 | 101 | 12 | 304 | 150 |
1 | 101 | 11 | 301 | 100 |
1 | 101 | 11 | 302 | 105 |
1 | 101 | 11 | 303 | 100 |
1 | 101 | 11 | 304 | 150 |
1 | 101 | 11 | 305 | 100 |
其中 C_id、J_id、d_id 和 code_id 是来自其他表的映射列。
我想要这样的输出:
C_id | J_id | code_id | D_10 | D_11 | D_12 |
---|---|---|---|---|---|
1 | 100 | 301 | 100 | 100 | 0 |
1 | 100 | 302 | 105 | 105 | 0 |
1 | 100 | 303 | 100 | 100 | 0 |
1 | 100 | 304 | 150 | 150 | 0 |
1 | 100 | 305 | 0 | 100 | 0 |
1 | 101 | 301 | 100 | 100 | 0 |
1 | 101 | 302 | 105 | 105 | 0 |
1 | 101 | 303 | 0 | 100 | 100 |
1 | 101 | 304 | 0 | 150 | 150 |
1 | 101 | 305 | 0 | 100 | 0 |
其中D_10、D_11、D_12是d_id列中的列,这些列中的数据是根据j_id映射到c_id的数量。
解决方案
推荐阅读
- sql-server - 如何将所有子项的值汇总到相应父行的同一列中
- tensorflow - 如何为 tf.softmax_cross_entropy_with_logits 屏蔽 logits 以实现有效操作
- sql-server - 如何使用 python 通过 vpn 连接到远程 SQL Server?
- javascript - 滚动上的淡入淡出标题
- python - gspread - get_all_values() 返回一个空列表
- node.js - Passport CAS认证策略认证失败错误
- html - Angular 7+:将静态 html 文件注入组件视图的中间
- java - 如何实现,只有双击安卓手机中三个按钮中的任何一个才能退出应用程序?
- tsql - 在 TSql 中解析自定义标签
- xcode - GoogleService-Info.plist : 是否复制捆绑资源