Refer to the exhibit. Which BigQuery SQL query correctly flattens the items into rows?
This is correct because CROSS JOIN UNNEST expands the items array into separate rows, preserving other order columns.
Why this answer
`CROSS JOIN UNNEST(items)` is the standard BigQuery syntax to flatten a repeated (array) column into individual rows. The `UNNEST` operator expands each array element into a separate row, and `CROSS JOIN` ensures that all non-array columns from the `orders` table are preserved alongside each element. This is the only option that correctly transforms the nested `items` array into a normalized row-per-item structure.
Exam trap
The Google Cloud Professional Data Engineer exam often tests the requirement that `UNNEST` must be paired with a join (like `CROSS JOIN` or `LEFT JOIN`) and that using `UNNEST` alone or with a `WHERE` clause is syntactically invalid in BigQuery, leading candidates to mistakenly choose Option B.
How to eliminate wrong answers
Option A is wrong because `WHERE items IS NOT NULL` only filters out rows where the entire `items` array is NULL, but does not flatten the array into individual rows; the result still contains arrays. Option B is wrong because `UNNEST(items) AS items` without a `CROSS JOIN` or `LEFT JOIN` is syntactically invalid in BigQuery; `UNNEST` must be used with a join operator (typically `CROSS JOIN` or `LEFT JOIN`). Option C is wrong because `INNER JOIN items ON true` assumes `items` is a separate table, but in this context `items` is a nested array column within the `orders` table, not a standalone table; this would cause a table-not-found error.