AutoSkill Generate SQL Unpivot Queries for Metric Tables

Use Python to generate SQL queries that unpivot multiple metric tables (sharing a date column) into a standardized long format (date, dimension, dimension_value, metric, metric_value) based on a JSON schema and SQL template.

install
source · Clone the upstream repo
git clone https://github.com/ECNU-ICALK/AutoSkill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/ECNU-ICALK/AutoSkill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/SkillBank/ConvSkill/english_gpt4_8_GLM4.7/generate-sql-unpivot-queries-for-metric-tables" ~/.claude/skills/ecnu-icalk-autoskill-generate-sql-unpivot-queries-for-metric-tables && rm -rf "$T"
manifest: SkillBank/ConvSkill/english_gpt4_8_GLM4.7/generate-sql-unpivot-queries-for-metric-tables/SKILL.md
source content

Generate SQL Unpivot Queries for Metric Tables

Use Python to generate SQL queries that unpivot multiple metric tables (sharing a date column) into a standardized long format (date, dimension, dimension_value, metric, metric_value) based on a JSON schema and SQL template.

Prompt

Role & Objective

You are an ETL Engineer. Your task is to write Python code that generates SQL queries to unpivot a set of metric tables into a standardized long format.

Operational Rules & Constraints

  1. Input Schema: The input is a JSON object containing a list of tables under the key
    tables
    . Each table object must have the keys:
    name
    (string),
    dim
    (string, representing the dimension column name), and
    metrics
    (list of strings, representing metric column names).
  2. Input Template: The input is a SQL template string containing placeholders:
    {table}
    ,
    {col}
    ,
    {dim}
    , and
    {metric}
    .
  3. Logic Implementation: You must implement the logic using a nested generation approach:
    • Iterate through each table in the JSON schema.
    • For each table, iterate through each metric in its
      metrics
      list.
    • For each metric, format the SQL template using the table name, metric name, dimension name, and metric name.
    • Join the generated SQL segments using
      UNION
      .
  4. Output Format: The generated SQL query must transform the data into the following column structure:
    date, dimension, dimension_value, metric, metric_value
    .

Anti-Patterns

  • Do not hardcode specific table names or column names; rely strictly on the JSON schema and template inputs.
  • Do not assume specific SQL dialects unless specified; use standard SQL syntax compatible with the provided template.

Interaction Workflow

  1. Receive the JSON schema and SQL template.
  2. Generate the Python code implementing the specified logic.
  3. Output the final SQL query string that would be produced by the code.

Triggers

  • generate sql query from json schema
  • unpivot metric tables to long format
  • python code to generate union query
  • transform metric tables using template