Работая в айтишечке
1.13K subscribers
272 photos
4 videos
54 links
Канал о том, как эффективно работать в IT: простые объяснения технических вещей, лайфхаки, лучшие практики и полезные инструменты для повседневных задач.

Автор: @Shevtsoff
Download Telegram
☕️ Лайфхак: Как найти дубликаты в базе данных с помощью SQL

Дубликаты в данных — частая проблема, которая может привести к некорректным аналитическим выводам, ошибкам в расчетах или ухудшению пользовательского опыта.

Например, дублированные email-адреса в CRM увеличивают расходы на email-рассылки, а повторяющиеся записи о заказах — риск двойного начисления бонусов.

Из прикреплённых к посту карточек вы узнаете, как найти их с помощью SQL.

#sql #data #tips #database #productivity
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
5🔥2
☕️ Как писать SQL-запросы с помощью LLM: гайд для менеджеров без аналитиков

Вы когда-нибудь сталкивались с ситуацией, когда вам срочно нужны данные, а аналитик занят? Или вы получаете отчет, который не отвечает на ваш вопрос, и приходится ждать перезапроса?

У меня такое постоянно)) Поэтому в последнее время часто пишу SQL-запросы в обнимку с LLM-моделью (мог бы и сам, но с моделью быстрее😉).

LLM не заменяет аналитика, но помогает сгенерировать правильный запрос, если передать в модель минимально достаточный контекст.

📦 Что собрать перед запросом к LLM
Для качественного ответа LLM нужно передать 4 ключевых блока (👀см.скрин)

Как передать данные LLM: шаблон промпта
Если у вас есть набор таблиц, с которым вы часто работаете, вот структурированный текст, который вы можете скопировать, заполнить и использовать для генерации запросов с помощью LLM:

У меня есть следующие таблицы в базе данных Postgres:

Таблица: users
Описание: Информация о пользователях платформы
Колонки:
- user_id (INT, PK): Уникальный ID пользователя
- email (VARCHAR): Email пользователя
- signup_date (DATE): Дата регистрации

Таблица: orders
Описание: Заказы пользователей
Колонки:
- order_id (INT, PK): Уникальный ID заказа
- user_id (INT, FK → users.user_id): Кто сделал заказ
- order_date (TIMESTAMP): Дата заказа
- amount (DECIMAL): Сумма заказа
- status (VARCHAR): Статус ("completed", "cancelled", "pending")

Связи:
- orders.user_id ссылается на users.user_id

Пример данных (orders):
| order_id | user_id | order_date | amount | status |
|----------|---------|---------------------|--------|----------|
| 101 | 5 | 2025-10-01 14:30:00 | 99.99 | completed|

Бизнес-логика:
- Активный пользователь — заходил в систему за последние 7 дней.
- Отмененные заказы (status = 'cancelled') не учитываются в выручке.

Запрос пользователя:
"Составь SQL запрос для расчёта общей выручки по месяцам за 2025 год."


💡 Советы для повышения качества генерации
— Указывайте СУБД
Синтаксис отличается: PostgreSQL, Vertica, Trino, Clickhouse — упомяните, какая система используется.
— Четко формулируйте цель
Лучше: «Покажи выручку по месяцам за 2025 год, учитывая только статус completed»
Хуже: «Нужна статистика по продажам»
— Ограничивайте scope
Не передавайте всю БД — только релевантные таблицы. Это снизит шум и повысит точность.
— Вместо ручного составления описания таблиц можно автоматически получить метаданные через системные таблицы вашей БД. Например для Postgres:
SELECT 
tbl.table_name,
col.column_name,
col.data_type,
pg_catalog.col_description(c.oid, col.ordinal_position::int) AS column_comment
FROM information_schema.tables tbl
JOIN information_schema.columns col ON col.table_name = tbl.table_name
JOIN pg_catalog.pg_class c ON c.relname = tbl.table_name
WHERE tbl.table_schema = 'public'
AND tbl.table_type = 'BASE TABLE'
ORDER BY tbl.table_name, col.ordinal_position;

Скопируйте результат в формате таблицы или JSON
Вставьте в промпт LLM вместо ручного описания структуры

А вы уже пробовали генерировать SQL через LLM? Делитесь в комментариях — какие фишки помогают вам!

#tips #llm #sql #analytics
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥65