yq/operators/pivot.md
2024-06-16 11:16:43 +10:00

1.2 KiB

Pivot

Emulates the PIVOT function supported by several popular RDBMS systems.

Pivot a sequence of sequences

Given a sample.yml file of:

- - foo
  - bar
  - baz
- - sis
  - boom
  - bah

then

yq 'pivot' sample.yml

will output

- - foo
  - sis
- - bar
  - boom
- - baz
  - bah

Pivot sequence of heterogeneous sequences

Missing values are "padded" to null.

Given a sample.yml file of:

- - foo
  - bar
  - baz
- - sis
  - boom
  - bah
  - blah

then

yq 'pivot' sample.yml

will output

- - foo
  - sis
- - bar
  - boom
- - baz
  - bah
- -
  - blah

Pivot sequence of maps

Given a sample.yml file of:

- foo: a
  bar: b
  baz: c
- foo: x
  bar: y
  baz: z

then

yq 'pivot' sample.yml

will output

foo:
  - a
  - x
bar:
  - b
  - y
baz:
  - c
  - z

Pivot sequence of heterogeneous maps

Missing values are "padded" to null.

Given a sample.yml file of:

- foo: a
  bar: b
  baz: c
- foo: x
  bar: y
  baz: z
  what: ever

then

yq 'pivot' sample.yml

will output

foo:
  - a
  - x
bar:
  - b
  - y
baz:
  - c
  - z
what:
  -
  - ever