Big Query

Pivot Table

Dataset Sales By Quarter

ProductSalesQuarter
Kale51Q1
Kale23Q2
Kale45Q3
Kale3Q4
Apple77Q1
Apple0Q2
Apple25Q3
Apple2Q4

Pivot Table

SELECT * FROM(
  SELECT Product, Sales, Quarter FROM Shop.SalesByQuarter
)
PIVOT(
  SUM(Sales) FOR Quarter IN ('Q1', 'Q2', 'Q3', 'Q4')
);

Pivot table dynamic Columns

EXECUTE IMMEDIATE(
  SELECT '''
    SELECT * FROM(
      SELECT Product, Sales, Quarter FROM Shop.SalesByQuarter
    ) 
    PIVOT(
        SUM(Sales) FOR Quarter IN ("''' || STRING_AGG(DISTINCT Quarter, '","' ORDER BY Quarter) || '''")
    )
  '''
  FROM Shop.SalesByQuarter
)