TGViewer
Channel Public Channel
SQL Ready | Базы Данных

SQL Ready | Базы Данных

@sql_ready

Авторский канал про Базы Данных и SQL
Ресурсы, гайды, задачи, шпаргалки.
Информация ежедневно пополняется!

Cотрудничество: @energy_c

РКН: https://clck.ru/3QREBc
Subscribers
17.6K
Photos
1.4K
Videos
115
Links
775

Showing posts older than #779 · Back to latest

Older Posts 5 shown
Post #773 2.96K
🖥 Разбираемся с LATERAL JOIN — подзапрос как функция!

С помощью LATERAL можно использовать значения из текущей строки в подзапросе — как будто передаёшь параметры в функцию.

Что важно знать:

• LATERAL делает подзапросы внутри JOIN «осведомлёнными» о текущей строке.

• Удобно, когда нужно посчитать агрегаты или достать top-N из связанных таблиц.

• Отлично работает с jsonb, позволяя обойтись без оконных функций.


Инструмент, с которым сложные запросы станут в разы проще.

➡ SQL Ready | #гайд
  • 🔥 20
  • ❤ 10
  • 👍 5
  • 🤝 3
Post #767 3.87K
🖥 Aging-отчёт по просроченным счетам!

В этой задаче напишем SQL-запрос, который поможет построить отчёт по неоплаченным счетам и оценить просроченную дебиторскую задолженность.

Что делаем:

• Распределяем счета по корзинам: 0-30, 31-60, 61-90, 90+ дней просрочки.

• Считаем сумму, количество и долю задолженности по каждой корзине.

• Строим топ-5 крупнейших должников с просрочкой более 60 дней.


Такой отчёт позволяет увидеть, где «зависли» деньги, и помогает сфокусироваться на проблемных клиентах

➡ SQL Ready | #задача
  • 🔥 22
  • ❤ 5
  • 👍 5
Post #762 4.34K
🖥 Профилирование производительности — способ найти и устранить узкие места в базе данных!

Позволяет понять, какие запросы и функции съедают ресурсы, где тормозит система и как это исправить. Отличный инструмент для ускорения и оптимизации работы с данными.

➡️ SQL Ready | #шпора
  • ❤ 16
  • 🔥 8
  • 👍 4
  • 🤝 3
Post #761 3.73K
ON CONFLICT DO NOTHING — апсерты без ошибок!

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

Чтобы обойти это — используем ON CONFLICT DO NOTHING. Он просто пропустит строки, которые уже есть.

Допустим, у нас есть таблица с пользователями, где email должен быть уникальным:
CREATE TABLE users (
id SERIAL PRIMARY KEY,
email TEXT UNIQUE
);


Попробуем вставить сразу несколько строк, включая дубликат:
INSERT INTO users (email)
VALUES ('alice@example.com'),
('bob@example.com'),
('alice@example.com'); -- дубликат!


Результат будет неудачным — Postgres выдаст ошибку и отменит всю операцию. Однако с ON CONFLICT всё работает иначе:
INSERT INTO users (email)
VALUES ('alice@example.com'),
('bob@example.com'),
('alice@example.com')
ON CONFLICT DO NOTHING;


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

➡️ SQL Ready | #практика
  • ❤ 11
  • 👍 9
  • 🔥 6
Post #756 2.86K
🖥 Ищем активные фотосессии и фотографии фотографа №7!

Имеем три таблицы: ps — фотосессии, ps_data — данные фотосессий и photo — фотографии. Таблицы ps_data и photo связаны с таблицей ps psid.

Необходимо вернуть активные фотосессии и принадлежащие им активные фотографии фотографа под номером 7.

В этой задаче:
• CTE — разбиваем сложный запрос с дабл джоинами на несколько простых.

•
WHERE — для фильтрации активный фотосессий нужного фотографа и активных фотографий.

• JOIN — для связи фотографий и фотосессий.


🔥 — если узнал что-то новое
🤝 — если знал решение


➡ SQL Ready | #задача
  • 🔥 15
  • ❤ 8
  • 👍 7
  • 🤝 1
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →