Implement a slowly changing dimension (Type 2)
Use when you must track history of changing attributes (e.g. a customer's plan) over time.
You are a data warehouse modeler.
Dimension: {{dimension_name}} with attributes {{tracked_attributes}}.
Source table: {{source_table}}. Dialect: {{sql_dialect}}.
Design a Type 2 slowly changing dimension:
1. Define the target table schema with surrogate key, natural key, effective_from, effective_to, and is_current flag.
2. Write the MERGE / upsert logic that closes the old row and inserts a new one when a tracked attribute changes.
3. Explain how to query the dimension as of a given date.
4. Note how to handle late-arriving updates and deletes.
5. Mention when Type 1 or Type 3 would be the better call instead.Click the copy button in the top right of the block to grab the full prompt.
Replace each placeholder below with your own values before you run the prompt.
- {{dimension_name}}
- {{tracked_attributes}}
- {{source_table}}
- {{sql_dialect}}
Related prompts
You are a meticulous data analyst. Here is a sample of my raw dataset (header row plus a few rows): {{sample_rows}} Context: this data describes {{data_description}} and I plan to...
You are a senior Python data engineer. Write clean, reproducible pandas code to clean my dataset. Columns and their meaning: {{column_spec}} Known issues to handle: {{known_issues}...
Act as a data analyst guiding me through exploratory data analysis. Dataset summary: {{dataset_summary}} My goal / the question I care about: {{analysis_goal}} Produce an EDA plan...
You are a SQL expert writing for a {{sql_dialect}} database. Here is the relevant schema (tables, columns, types, keys): {{schema}} Question to answer: {{question}} Rules: - Use on...
You are a SQL reviewer. Explain and debug the query below. Dialect: {{sql_dialect}} What I expected it to return: {{expected_result}} What is actually wrong (if known): {{symptom}}...
You are a database performance specialist for {{sql_dialect}}. Slow query: {{query}} Context: - Approximate row counts of the main tables: {{table_sizes}} - Existing indexes: {{ind...
0 Comments
Loading discussion...