sql - 单表的 SQL 透视图
问题描述
有一张桌子:
Nomber Sce SceValue
10 A a1b2c3
20 C d2v3b4
10 B 42b2c3
10 B 5978c3
20 A edr432
我需要使用视图创建以下列表,其中为每个单独的“Nomber”显示所有可能的“Sce”和“SceValue”对(最多 9 对):
Nomber Sce1 SceValue1 Sce2 SceValue2 ... Sce9 SceValue9
10 A a1b2c3 B 42b2c3 B 5978c3
20 C d2v3b4 A edr432
我想使用视图来实现这一点。这可能吗?
解决方案
您可以使用条件聚合:
select number,
max(case when seqnum = 1 then Sce end) as sce_1,
max(case when seqnum = 1 then SceValue end) as SceValue_1,
max(case when seqnum = 2 then Sce end) as sce_2,
max(case when seqnum = 2 then SceValue end) as SceValue_2,
. . .
max(case when seqnum = 9 then Sce end) as sce_9,
max(case when seqnum = 9 then SceValue end) as SceValue_9
from (select t.*,
row_number() over (partition by nomber order by sce) as seqnum
from t
) t
group by nomber;
推荐阅读
- jenkins - 使用 CLI 对远程 jenkins 进行身份验证
- javascript - 有效地验证页面上的数据在您加载后没有被其他人更改?
- visual-studio - 将文件添加到 nuget 包
- flutter - 颤振扩展面板
- python - 如何在 Python 中求解矩阵方程组?
- php - 有没有办法在不使用数据库的情况下创建群聊?
- events - 是什么决定了哪个事件将首先运行?
- javascript - 未使用 nuxt 和 storyblok 呈现数据
- sql - 将来自 SQL 查询的列表结果列表存储在 Pandas 数据框中,其中包含数据框中的相应行
- java - Java 应用程序拒绝将输出显示为浮点数。试过铸造,乘1.0,加0.0,没有用