For example, from this table
| row | col | val |
|---|---|---|
| 0 | A | 32 |
| 0 | B | 31 |
| 0 | C | 35 |
| 1 | A | 30 |
| 1 | B | 29 |
| 1 | C | 29 |
| 2 | A | 15 |
| 2 | B | 14 |
| 2 | D | 18 |
| 3 | A | 34 |
| 3 | B | 39 |
| 3 | C | 34 |
| 3 | D | 35 |
it should produce this table:
| A | B | C | D | |
|---|---|---|---|---|
| 0 | 32 | 31 | 35 | |
| 1 | 30 | 29 | 29 | |
| 2 | 15 | 14 | 18 | |
| 3 | 34 | 39 | 34 | 35 |
Is there some official, canonical (or at least popular specific unambiguous) term for such operation (or its reverse)?
I am trying to find (or implement & publish) a tool that transforms CSV this way, but am unsure what to search for (or how to name it).
CodePudding user response:
The term is pivot.
Some databases have native support for pivot, eg SQL Server's PIVOT (and even UNPIVOT) keywords.
For most databases you must craft a query that does the job.
