Courseiva

COF-C03 Practice Question: Performance Optimization, Querying, and Transformation

A data engineer needs to transform a variant column containing an array of objects into a relational format. Which TWO Snowflake features or functions are required to achieve this?

⚠ Common exam trap

Candidates often forget the LATERAL keyword. Without it, the FLATTEN function cannot correlate the exploded rows with the original columns from the source table.

Answer choices

Why each option matters

Answer the question above first, then reveal the full breakdown to understand why each option is right or wrong.

Correct answer & explanation

✓

The FLATTEN function

To transform semi-structured data like arrays into individual rows, the FLATTEN function is used to explode the array elements. This is typically paired with the LATERAL keyword, which allows the FLATTEN function to reference columns from preceding tables in the FROM clause, effectively joining each array element back to its parent row.

Answer analysis

Option-by-option breakdown

For each option: why learners choose it and why it is or isn't the right answer here.

  • ✓

    The FLATTEN function

    Why this is correct

    The FLATTEN table function is specifically designed to convert semi-structured data into a relational representation. It takes a VARIANT, OBJECT, or ARRAY and explodes it into multiple rows, providing columns for the index, key, and value of the nested elements, which is essential for flattening arrays.

  • ✗

    The UNPIVOT clause

    Why it's wrong here

    UNPIVOT is used to rotate columns into rows for structured data, but it does not natively parse or explode nested JSON arrays stored in VARIANT columns. While it changes data orientation, it lacks the specialized logic required to traverse and extract elements from semi-structured data structures effectively.

  • ✓

    The LATERAL keyword

    Why this is correct

    The LATERAL keyword allows a correlated subquery or table function like FLATTEN to reference columns from other tables appearing earlier in the FROM clause. This is necessary to maintain the relationship between the original row and the individual elements extracted from its nested array during transformation.

  • ✗

    The PARSE_JSON function

    Why it's wrong here

    PARSE_JSON converts a string containing JSON into a VARIANT data type. While useful for initial data preparation, it does not perform the transformation of expanding array elements into multiple rows. It merely ensures the data is in a format that other functions like FLATTEN can then process.

  • ✗

    The STRTOK_TO_ARRAY function

    Why it's wrong here

    This function is used to split a string into an array based on specific delimiters. While it creates an array, it does not handle the expansion of that array into rows or the extraction of keys from objects, making it the wrong tool for relationalizing complex VARIANT data.

About these practice questions

Courseiva writes every COF-C03 question from scratch — 280 in total, each with an explanation and a wrong-answer breakdown. None are copied from real exams or dumps. Learn why practice questions differ from exam dumps →

How Courseiva writes practice questions · Editorial policy

JA

Written and reviewed by Johnson Ajibi, MSc IT Security

Senior Network & Security Engineer · founder of Courseiva

Last reviewed September 2026 · checked against the official Snowflake exam blueprint

This COF-C03 practice question is part of Courseiva's free Snowflake certification practice question bank. Courseiva provides original exam-style practice questions with explanations, topic-based practice, mock exams, readiness tracking, and study analytics to help learners prepare for the COF-C03 exam.