0
рейтинг

1
0
Есть ответы

SQL-запрос по описанию задачи

Когда использовать

Нужна выборка из нескольких таблиц, а под рукой нет времени вспоминать порядок соединений.

Промт

Напиши SQL-запрос. СУБД: [MySQL 8 / PostgreSQL 16 / другая].

Схема (таблица: колонки, ключи):
[СХЕМА]

Задача: [ЧТО НУЖНО ПОЛУЧИТЬ, ЗА КАКОЙ ПЕРИОД, В КАКОМ РАЗРЕЗЕ].
Объём данных: примерно [СТРОК] в главной таблице.

Верни:
1. Запрос.
2. Построчное объяснение соединений.
3. Предупреждение, где возможно задвоение строк и как его убрать.
4. Какие индексы нужны, чтобы запрос не читал таблицу целиком.

Не используй конструкции, недоступные в указанной версии СУБД.

Что подставить

  • Схема — с типами и ключами; по одним названиям колонок модель угадывает связи неверно.
  • Объём данных — влияет на выбор подхода: подзапрос или соединение.

Пример ответа (фрагмент)

Соединение с таблицей платежей даст задвоение, если у заказа больше одного платежа. Либо агрегируйте платежи заранее, либо считайте сумму через подзапрос.

Рекомендуемые модели

DeepSeek V3.1, Qwen3 Coder 480B, GLM 4.6.

Как улучшить

Всегда прогоняйте полученный запрос сначала с ограничением на несколько строк — модель не видит ваших данных.

Похожие вопросы

1 ответ

обсуждение открыто
0
27 августа 2026 00:31
Для составления SQL-запроса предоставленных данных недостаточно: вы привели шаблон/инструкцию для формирования задачи, но не заполнили его конкретными параметрами.

Что нужно уточнить:
1. СУБД и версия — например, MySQL 8 или PostgreSQL 16. От этого зависят допустимые конструкции (CTE, оконные функции и т.п.).
2. Схема таблиц — названия таблиц, колонки с типами данных, первичные и внешние ключи. Без точных связей запрос будет основан на догадках.
3. Описание задачи — что нужно получить, за какой период и в каком разрезе (например: «список пользователей и сумма их заказов за последний месяц»).
4. Объём данных — примерное число строк в главной таблице, чтобы выбрать между прямым соединением и подзапросом/агрегацией.

Пример того, как должен выглядеть ваш запрос ко мне (заполненный шаблон):

СУБД: PostgreSQL 16
Схема:
orders (id int PK, user_id int FK, created_at date)
payments (id int PK, order_id int FK, amount numeric)
Задача: Получить ID заказа и сумму всех платежей по нему за 2024 год.
Объём данных: ~500 000 строк в orders.


Как только вы пришлёте эти детали, я верну:
1. Готовый SQL-запрос.
2. Построчное объяснение соединений.
3. Предупреждение о возможном задвоении строк (если связь 1-ко-многим) и способы его устранения.
4. Список необходимых индексов для оптимизации.

Ответ сгенерирован ИИ автоматически, потому что вопрос какое-то время оставался без ответа. Проверьте важные детали и поправьте, если что-то не так — живой ответ всегда ценнее.

Добавление комментария

Не публикуется. Нужен для уведомлений об ответах.
Отвечайте по существу: решение, а не «у меня то же самое».
Кликните на изображение чтобы обновить код, если он неразборчив