Snowflake SnowPro Core (COF-C03) · 14% practice allocation

Snowflake COF-C03: Structured, semi-structured, and unstructured data Practice Questions

5 free sample questions from the Structured, semi-structured, and unstructured data domain, with answers and explanations. The full COF-C03 bank has 354 questions across 7 domains. Questions are scenario-based and written from the official Snowflake exam guide.

1.

For accessing a specific element by position in a JSON array stored in a VARIANT column named tags, which notation is correct in Snowflake, to get the first element?

  • A. tags{0}
  • B. tags[0]✓ Correct
  • C. tags(0)
  • D. tags.FIRST
Explanation

Snowflake uses zero-indexed bracket notation to access array elements by position, so tags[0] retrieves the first element of the array (as a VARIANT). Options A, C, and D use syntax forms that are not valid Snowflake VARIANT array indexing.

2.

Which Snowflake data type is used to reference an unstructured file (such as an image or PDF) stored in a stage, enabling functions to retrieve or process the file's content or metadata from SQL?

  • A. VARIANT
  • B. GEOGRAPHY
  • C. TIME
  • D. FILE✓ Correct
Explanation

The FILE data type is specifically designed to hold a reference to an unstructured file in a stage, enabling SQL and functions (including in Snowpark) to work with file content, metadata, or generate scoped access URLs. VARIANT (option A) is for semi-structured data like JSON, not a reference to opaque binary files. GEOGRAPHY (option B) represents spatial data (points, polygons), unrelated to generic file references. TIME (option C) is a scalar time-of-day type, entirely unrelated.

3.

A query needs to extract the value of the 'city' key nested inside an 'address' object, which is itself a field of a VARIANT column named payload. Which expression correctly retrieves it as a VARIANT value?

  • A. payload->address->city (arrow chaining, as in some other SQL dialects)
  • B. payload.address['city']
  • C. payload:address.city✓ Correct
  • D. EXTRACT(city FROM payload.address)
Explanation

Snowflake uses colon (:) notation to access a top-level field of a VARIANT, and dot notation to descend into nested object fields, so payload:address.city correctly retrieves the nested city value (as VARIANT, which can then be cast, e.g., ::STRING). Option B reverses/mixes syntax incorrectly for Snowflake (dot-then-bracket in that specific combination is not the standard Snowflake VARIANT path syntax). Option D invents a nonexistent EXTRACT(...FROM...) syntax for VARIANT field access. Option A uses PostgreSQL-style arrow operators, which are not Snowflake VARIANT path syntax.

4.

A user wants to see what a table looked like exactly one hour ago, before subsequent updates, without restoring anything. Which Time Travel clause should they use?

  • A. SELECT ... FROM my_table CLUSTER BY updated_at
  • B. SELECT ... FROM my_table AT(OFFSET => -3600)✓ Correct
  • C. SELECT ... FROM my_table WITH MASKING POLICY
  • D. SELECT ... FROM my_table SAMPLE (10)
Explanation

The AT clause with an OFFSET (in seconds relative to the current time, so -3600 for one hour ago) lets a query read the table's historical state as of that point, purely as a read-only query — no restore action needed. SAMPLE (option D) returns a random subset of current rows, unrelated to historical state. CLUSTER BY (option A) defines a clustering key for physical data organization, not a historical query mechanism. Option C references masking policies, a data-protection feature unrelated to Time Travel.

5.

A table needs to store an incoming JSON payload whose exact schema varies from record to record (some fields present, some absent, nested differently). Which Snowflake data type is designed for this?

  • A. VARIANT✓ Correct
  • B. NUMBER
  • C. A fixed set of individual VARCHAR columns, one per possible JSON key
  • D. BOOLEAN
Explanation

VARIANT is Snowflake's universal semi-structured type, able to hold JSON-like structures (objects, arrays, and scalar values) of varying and evolving shape within a single column, without requiring a rigid predefined schema. NUMBER (option B) and BOOLEAN (option D) are scalar structured types unsuited to nested/variable data. Option C (many fixed VARCHAR columns) would require redefining the table schema every time the JSON shape changes and handles nested structures poorly — exactly the rigidity VARIANT is meant to avoid.

Test yourself across every COF-C03 domain

The free COF-C03 practice test mixes about 20 questions weighted like the exam. The full 354-question bank adds instant grading, flashcards and a timed mock exam.

Study this domain

Structured, semi-structured, and unstructured data study guide (COF-C03) →

Other COF-C03 domains

← All Snowflake SnowPro Core study resources