sql - SQL Unpivot 与 CASE 和 LIKE 语句
问题描述
寻求一些帮助以 UNPIVOT 类似于所附图像的表格。我有两种类型的列名,在标题中带有“Sales”或“Staff”,我想将它们合并到仅用于 Sales 和 Staff 的列中。理想情况下,这将是动态完成的,因此我没有指定单独的列名,而只是我正在搜索的标准。该区域也可以是动态的,或者通过加入一个单独的 metric -> region 映射表来完成。
解决方案
通用解决方案使用union all
:
select period, channel, 'East' as region, east_sales as sales, east_staff as staff
from t
union all
select period, channel, 'West' as region, west_sales as sales, west_start as staff
from t;
但是,在支持横向连接的数据库中,我建议使用横向连接。
推荐阅读
- .net-core - .NETCORE 2.0 AcquireTokenAsync 抛出 AdalServiceException:TaskCanceledException
- go - 无法从 udemy 课程中找出缺少的 protoc 命令
- ios - Swift:注销后无法再次登录钥匙串
- nginx - 使用 NGINX 代理重定向 URL
- python - Python时间模块-导入timex2?
- c# - ECDSA 如何在 c# 中将私有和公共字节转换为单个共享密钥
- caching - 在 v-for 组件中删除了错误的项目 [在 v-for 中选择正确的 :key]
- html - CSS:margin-bottom 不起作用并且 div 标签的内容显示在边框之外
- c++ - 模板扣除指南似乎不起作用
- python - 如何从 python 调用 api,给出语法错误 - “无效语法”