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).
Записаться и оплатить участие можно здесь.
Места ещё есть!
Начинаем сегодня в 19:00. Будем заниматься через Zoom сегодня, в среду и пятницу (19:00 - 20:00).
Записаться и оплатить участие можно здесь.
Места ещё есть!
В таблице TableA 3 строки, в таблице TableB 4 строки. Сколько записей минимум и сколько записей максимум
будет при соединении через full join:
будет при соединении через 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
);
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;
С каким значением в столбце ORDERS_CNT клиент с идентификатором 10 отобразится в запросе?
Anonymous Quiz
13%
Клиент с идентификатором 10 не отобразится в результате
22%
Отобразится со значением Null
40%
Отобразится со значением 0
21%
Отобразится со значением 1
4%
Отобразится со значением 10
Всем привет!
Мини тест по базовый знаниям PL/SQL (ORACLE):
Как правильно обработать ситуацию, когда
Мини тест по базовый знаниям PL/SQL (ORACLE):
Как правильно обработать ситуацию, когда
SELECT INTO не нашёл строку?SELECT salary
INTO v_salary
FROM employees
WHERE employee_id = 100;Как правильно обработать ситуацию, когда SELECT INTO не нашёл строку?
Anonymous Quiz
6%
IF SQL%NOTFOUND THEN сразу после SELECT
36%
EXCEPTION WHEN NO_DATA_FOUND THEN
5%
EXCEPTION WHEN SQL%NOTFOUND THEN
9%
WHEN NOT_FOUND THEN
43%
Никак — SELECT INTO автоматически возвращает NULL
Media is too big
VIEW IN TELEGRAM
Всем привет!
Записал небольшое видео про оптимизацию SQL запросов!
Записал небольшое видео про оптимизацию SQL запросов!
🔥9
Есть таблица orders:
Задача: найти клиентов, у которых сумма заказов в феврале больше, чем в январе.
Какой запрос правильный?
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;
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
Какова основная цель нормализации реляционной базы данных?
Anonymous Quiz
86%
Уменьшить избыточность данных и избежать аномалий изменения
4%
Увеличить количество дублирующихся данных
1%
Отказаться от первичных и вешних ключей
8%
Ускорить выполнение абсолютно всех SQL запросов