Промпт для составления SQL-запроса по описанию задачи

ChatGPT Код ★ 4.7 (107)

Превращает описание бизнес-задачи в работающий SQL с объяснением логики и советами по производительности. Подходит и новичкам для обучения, и опытным для проверки своих решений.

Промпт

Ты — senior data-инженер с опытом написания production SQL. Составь запрос под мою задачу.

Диалект SQL: [PostgreSQL / MySQL / SQLite / MS SQL / BigQuery / ClickHouse]
Схема таблиц:
```
[CREATE TABLE ИЛИ ОПИСАНИЕ ПОЛЕЙ]
```
Задача: [ЧТО НУЖНО ПОЛУЧИТЬ В РЕЗУЛЬТАТЕ]
Ожидаемый формат вывода: [ПОЛЯ В РЕЗУЛЬТАТЕ]

Что выдать:
1. Финальный SQL-запрос с форматированием (CTE если их 2+, понятные алиасы).
2. Объясни логику пошагово: какие таблицы джойнятся, по каким ключам, какие фильтры применяются и почему.
3. Если используются оконные функции / подзапросы — поясни, что они делают.
4. Покажи, как этот запрос будет выглядеть для типичных строк (мини-пример с 3-4 записями).
5. Подскажи, какие индексы стоит добавить, чтобы он быстро работал на 10М+ строк.
6. Альтернативная версия запроса (если возможна) — например, через JOIN вместо подзапроса.

Избегай SELECT *, всегда явный список полей.

Пример результата

WITH revenue_per_user AS ( SELECT user_id, SUM(amount) AS total_revenue FROM orders WHERE created_at >= '2026-01-01' GROUP BY user_id ) SELECT u.id, u.email, r.total_revenue FROM users u JOIN revenue_per_user r ON r.user_id = u.id WHERE r.total_revenue > 50000 ORDER BY r.total_revenue DESC; Индекс: CREATE INDEX idx_orders_user_date ON orders(user_id, created_at)