SQL Patterns

VerifiedSafe

Quick reference for common SQL patterns, CTEs, window functions, and indexing strategies.

Sby Skills Guide Bot
Data & AIIntermediate
7607/22/2026
Claude Code
#sql#query-optimization#cte#window-functions#indexing

Recommended for

Automated summary

A quick reference that recalls common SQL patterns: CTEs, window functions, joins, pagination, and indexing strategies.

Strengths

  • Covers simple and chained CTEs with directly reusable examples
  • Clear comparison table of window functions (ROW_NUMBER, RANK, LAG/LEAD, running aggregates)
  • Includes keyset pagination as a fast alternative to OFFSET/LIMIT
  • Anti-pattern table with concrete fixes (SELECT *, NOT IN with NULLs, N+1)

Limitations

  • Mostly summary tables rather than in-depth discussion of edge cases
  • Does not specify a SQL dialect (PostgreSQL, MySQL, etc.)
  • Detailed material is deferred to external reference files not included here
When to use it

Use it when writing or reviewing a SQL query and you want an immediate cheat sheet for CTEs, windows, joins, or indexes.

When not to use it

Avoid it for real performance diagnosis on a specific database or for vendor-specific syntax not covered here.

Security analysis

Safe
Quality score82/100

The skill is a static SQL reference using only Read and Write tools. It contains no executable commands, network access, secret handling, or destructive instructions.

No concerns found

How this analysis is made

Examples

Chained CTE for users and orders
Write a SQL query using chained CTEs that lists active users with their order count, including users with zero orders.
Running total with window functions
Show me a SQL query that computes daily revenue alongside the previous day's revenue and a running total.
Keyset pagination
Convert this OFFSET/LIMIT pagination query to keyset pagination and explain why it scales better.

name: sql-patterns description: "Quick reference for common SQL patterns, CTEs, window functions, and indexing strategies. Triggers on: sql patterns, cte example, window functions, sql join, index strategy, pagination sql." allowed-tools: "Read Write"

SQL Patterns

Quick reference for common SQL patterns.

CTE (Common Table Expressions)

WITH active_users AS (
    SELECT id, name, email
    FROM users
    WHERE status = 'active'
)
SELECT * FROM active_users WHERE created_at > '2024-01-01';

Chained CTEs

WITH
    active_users AS (
        SELECT id, name FROM users WHERE status = 'active'
    ),
    user_orders AS (
        SELECT user_id, COUNT(*) as order_count
        FROM orders GROUP BY user_id
    )
SELECT u.name, COALESCE(o.order_count, 0) as orders
FROM active_users u
LEFT JOIN user_orders o ON u.id = o.user_id;

Window Functions (Quick Reference)

| Function | Use | |----------|-----| | ROW_NUMBER() | Unique sequential numbering | | RANK() | Rank with gaps (1, 2, 2, 4) | | DENSE_RANK() | Rank without gaps (1, 2, 2, 3) | | LAG(col, n) | Previous row value | | LEAD(col, n) | Next row value | | SUM() OVER | Running total | | AVG() OVER | Moving average |

SELECT
    date,
    revenue,
    LAG(revenue, 1) OVER (ORDER BY date) as prev_day,
    SUM(revenue) OVER (ORDER BY date) as running_total
FROM daily_sales;

JOIN Reference

| Type | Returns | |------|---------| | INNER JOIN | Only matching rows | | LEFT JOIN | All left + matching right | | RIGHT JOIN | All right + matching left | | FULL JOIN | All rows, NULL where no match |

Pagination

-- OFFSET/LIMIT (simple, slow for large offsets)
SELECT * FROM products ORDER BY id LIMIT 20 OFFSET 40;

-- Keyset (fast, scalable)
SELECT * FROM products WHERE id > 42 ORDER BY id LIMIT 20;

Index Quick Reference

| Index Type | Best For | |------------|----------| | B-tree | Range queries, ORDER BY | | Hash | Exact equality only | | GIN | Arrays, JSONB, full-text | | Covering | Avoid table lookup |

Anti-Patterns

| Mistake | Fix | |---------|-----| | SELECT * | List columns explicitly | | WHERE YEAR(date) = 2024 | WHERE date >= '2024-01-01' | | NOT IN with NULLs | Use NOT EXISTS | | N+1 queries | Use JOIN or batch |

Additional Resources

For detailed patterns, load:

  • ./references/window-functions.md - Complete window function patterns
  • ./references/indexing-strategies.md - Index types, covering indexes, optimization
Related skills