Пишем на SQL
1.88K subscribers
47 photos
8 videos
12 files
127 links
Уроки по SQL. Изучаем базы данных на примере СУБД ORACLE, MySQL, MS SQL Server, PostgreSql

Мой курс по SQL и базам данных:
https://prime-soft.biz/courses/sql

Связь со мной @iliahohlov
Download Telegram
Ilia Khokhlov 👨‍💻
Всем привет! Как насчет очередной задачки по SQL? 😎 В таблице rate_periods есть данные вида: id date_from date_to rate 1 09.02.2026 12.02.2026 4.1 2 13.02.2026 19.02.2026 4.1 3 20.02.2026 23.02.2026 4.2 4 24.02.2026 04.03.2026…
Эту и другие интересные задачи порешаем на нашем трехдневном тренинге по SQL!

Начинаем сегодня в 19:00. Будем заниматься через Zoom сегодня, в среду и пятницу (19:00 - 20:00).
Записаться и оплатить участие можно здесь.

Места ещё есть!
В таблице TableA 3 строки, в таблице TableB 4 строки. Сколько записей минимум и сколько записей максимум
будет при соединении через full join:
Anonymous Quiz
6%
min 0, max 3
7%
min 0, max 4
4%
min 0, max 7
21%
min 0, max 12
6%
min 3, max 4
6%
min 3, max 7
15%
min 3, max 12
8%
min 4, max 7
15%
min 4, max 12
12%
min 7, max 12
❤2
Как найти клиентов, у которых не было заказов?

A:
SELECT c.*
FROM clients c
JOIN orders o ON o.client_id = c.id
WHERE o.id IS NULL;

B:
SELECT c.*
FROM clients c
LEFT JOIN orders o ON o.client_id = c.id
WHERE o.id IS NULL;

C:
SELECT c.*
FROM clients c
RIGHT JOIN orders o ON o.client_id = c.id
WHERE o.id IS NULL;

D:
SELECT c.*
FROM clients c
WHERE c.id IN (
SELECT client_id
FROM orders
);
Как найти клиентов, у которых не было заказов?
Anonymous Quiz
12%
Вариант A
68%
Вариант B
12%
Вариант C
8%
Вариант D
У клиента с идентификатором 10 нет ни одного заказа. С каким значением в столбце ORDERS_CNT он отобразится в результате выполнения следующего запроса:

SELECT c.id, COUNT(*) ORDERS_CNT
FROM clients c
LEFT JOIN orders o
ON o.client_id = c.id
GROUP BY c.id;
Всем привет!

Мини тест по базовый знаниям PL/SQL (ORACLE):

Как правильно обработать ситуацию, когда SELECT INTO не нашёл строку?

SELECT salary
INTO v_salary
FROM employees
WHERE employee_id = 100;
Недавно получил ещё один прекрасный отзыв от ученика курса программирования в PL/SQL! Спасибо за много добрых слов! 😊
Media is too big
VIEW IN TELEGRAM
Всем привет!

Записал небольшое видео про оптимизацию SQL запросов!
🔥9
Есть таблица orders:

id  customer_id  order_date  amount
1 101 2026-01-10 1000
2 101 2026-01-15 500
3 102 2026-01-20 2000
4 103 2026-02-01 300
5 101 2026-02-10 700


Задача: найти клиентов, у которых сумма заказов в феврале больше, чем в январе.

Какой запрос правильный?

A.
SELECT customer_id
FROM orders
WHERE EXTRACT(MONTH FROM order_date) = 2
GROUP BY customer_id
HAVING SUM(amount) > SUM(amount);

B.
SELECT customer_id
FROM orders
GROUP BY customer_id
HAVING SUM(CASE WHEN EXTRACT(MONTH FROM order_date) = 2 THEN amount ELSE 0 END)
> SUM(CASE WHEN EXTRACT(MONTH FROM order_date) = 1 THEN amount ELSE 0 END);

C.
SELECT customer_id
FROM orders
WHERE EXTRACT(MONTH FROM order_date) = 2
AND SUM(amount) > (
SELECT SUM(amount)
FROM orders
WHERE EXTRACT(MONTH FROM order_date) = 1
)
GROUP BY customer_id;

D.
SELECT customer_id
FROM orders
WHERE EXTRACT(MONTH FROM order_date) IN (1, 2)
GROUP BY customer_id
HAVING SUM(amount) > 0;
Какой запрос правильный?
Anonymous Quiz
5%
Вариант "A"
53%
Вариант "B"
37%
Вариант "C"
5%
Вариант "D"
👍1
😁7