【发布时间】:2021-11-16 07:22:10
【问题描述】:
虽然在回答有关将长表转换为宽格式的各种问题时提供了使用 Teradata 的 PIVOT 函数,但这些建议涉及使用聚合函数,即 PIVOT 的一个参数。
有没有办法在不聚合的情况下重塑/旋转数据?
这样的表可以吗...
| Initial | Name |
|---|---|
| A | Abel |
| A | Adriana |
| A | Alberto |
| B | Billy |
| B | Bob |
| C | Carla |
| C | Carlos |
| C | Cesar |
| C | Cristina |
...变成下面?
| Initial | Name1 | Name2 | Name3 | Name4 |
|---|---|---|---|---|
| A | Abel | Adriana | Alberto | |
| B | Billy | Bob | ||
| C | Carla | Carlos | Cesar | Cristina |
这是我用于在 Teradata 16.20 中创建第一个表的代码:
CREATE VOLATILE TABLE MyTab (Initial varchar(1), "Name" varchar(10))
UNIQUE PRIMARY INDEX(Initial, "Name") ON COMMIT PRESERVE ROWS;
INSERT INTO MyTab values ('A','Abel');
INSERT INTO MyTab values ('A','Adriana');
INSERT INTO MyTab values ('A','Alberto');
INSERT INTO MyTab values ('B','Billy');
INSERT INTO MyTab values ('B','Bob');
INSERT INTO MyTab values ('C','Carla');
INSERT INTO MyTab values ('C','Carlos');
INSERT INTO MyTab values ('C','Cesar');
INSERT INTO MyTab values ('C','Cristina');
SELECT * FROM MyTab ORDER BY Initial, "Name";
【问题讨论】: