Files
pm-skills/pm-data-analytics/commands/write-query.md
T
Pawel Huryn 77dbdfa1b9 v1.0
2026-03-02 00:36:23 +01:00

2.8 KiB

description, argument-hint
description argument-hint
Generate SQL queries from natural language — supports BigQuery, PostgreSQL, MySQL, and more <what you want to know, in plain English>

/write-query -- SQL Query Generator

Describe what data you need in plain English and get an optimized SQL query. Supports multiple dialects and can read your schema from uploaded files.

Invocation

/write-query Show me daily active users for the last 30 days, broken down by plan tier
/write-query Find users who signed up last month but never completed onboarding
/write-query [upload a schema diagram] What's the conversion rate from trial to paid by cohort?

Workflow

Step 1: Understand the Question

Parse the user's natural language request to identify:

  • What data is being requested (metrics, dimensions, filters)
  • Time range and granularity
  • Grouping and ordering preferences
  • Output expectations (raw data, aggregated, ranked)

Step 2: Determine Schema

If a schema is available (uploaded diagram, DDL, or description):

  • Map the request to specific tables and columns
  • Identify necessary joins

If no schema is provided:

  • Ask for the database type (BigQuery, PostgreSQL, MySQL, etc.)
  • Infer a reasonable schema from the question and ask the user to confirm
  • Use common SaaS data model conventions as defaults

Step 3: Generate Query

Apply the sql-queries skill:

  • Write the SQL query in the correct dialect
  • Optimize for readability and performance
  • Include comments explaining key logic
  • Add CTEs for complex queries to improve readability
  • Handle edge cases (NULLs, timezone considerations, duplicate handling)

Step 4: Present and Iterate

## SQL Query: [What It Does]

**Dialect**: [BigQuery / PostgreSQL / MySQL / etc.]
**Tables used**: [list]

### Query
[SQL code block with comments]

### What This Returns
[Description of the output: columns, rows, expected result shape]

### Assumptions
- [Schema assumptions made]
- [Business logic assumptions]

### Notes
- [Performance considerations for large datasets]
- [Edge cases handled or flagged]

Offer:

  • "Want me to modify this — add filters, change grouping, extend the time range?"
  • "Should I create a companion query for a related metric?"
  • "Want me to build a dashboard around this query?"
  • "Need a cohort analysis version of this?"

Notes

  • Always include comments in the SQL — PMs share queries with analysts who need to understand intent
  • Default to readable over clever — CTEs over nested subqueries
  • Flag queries that might be slow on large datasets and suggest optimization
  • If the request is ambiguous (e.g., "active users"), ask the user to define the metric precisely
  • Offer to generate the query in multiple dialects if the user is unsure which database they're using