WITH RECURSIVE NumberSeries AS
( SELECT 1 AS number
UNION ALL
SELECT number + 1 FROM NumberSeries
WHERE number < 5 )
SELECT * FROM NumberSeries;
25. Какой результат вернёт рекурсивный запрос выше?
Anonymous Quiz
36%
A) 1, 2, 3, 4, 5
44%
B) 1, 2, 3, 4
20%
C) 1, 2, 3, 4, 5, 6
0%
D) 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
В недавнем опросе среди аналитиков на тему использования SELECT * результаты показали:
• 39% считают, что это упрощает запросы
• 48% полагают, что это увеличивает объем передаваемых данных
• 4% думают, что это ускоряет выполнение запросов
• 9% считают, что это упрощает чтение кода
SELECT * возвращает все столбцы таблицы, включая те, которые могут быть не нужны для анализа. Это увеличивает объем передаваемых данных и может замедлить выполнение запроса. Запросы с SELECT * могут быть менее оптимизированы, так как база данных должна обрабатывать больше данных, чем необходимо. Явное указание необходимых столбцов делает код более читаемым и поддерживаемым. Это также помогает избежать неожиданных изменений в структуре таблицы, которые могут повлиять на результаты запроса.
-- Плохая практика
-- Хорошая практика
Всегда указывайте только те столбцы, которые вам действительно нужны для анализа. Это улучшит производительность запросов и сделает ваш код более понятным.
• 39% считают, что это упрощает запросы
• 48% полагают, что это увеличивает объем передаваемых данных
• 4% думают, что это ускоряет выполнение запросов
• 9% считают, что это упрощает чтение кода
SELECT * возвращает все столбцы таблицы, включая те, которые могут быть не нужны для анализа. Это увеличивает объем передаваемых данных и может замедлить выполнение запроса. Запросы с SELECT * могут быть менее оптимизированы, так как база данных должна обрабатывать больше данных, чем необходимо. Явное указание необходимых столбцов делает код более читаемым и поддерживаемым. Это также помогает избежать неожиданных изменений в структуре таблицы, которые могут повлиять на результаты запроса.
-- Плохая практика
SELECT * FROM employees;
-- Хорошая практика
SELECT id, name, salary FROM employees;
Всегда указывайте только те столбцы, которые вам действительно нужны для анализа. Это улучшит производительность запросов и сделает ваш код более понятным.
👍4
SELECT * FROM employees
WHERE salary IN (NULL,
50000, 60000);
25. Какое значение вернёт следующий запрос, если в таблице employees есть значения NULL в столбце salary?
Anonymous Quiz
70%
A) Все строки из таблицы employees, где salary равно 50000 или 60000, включая строки с NULL.
0%
B) Все строки из таблицы employees, где salary равно NULL.
27%
C) Все строки из таблицы employees, где salary равно 50000 или 60000, исключая строки с NULL.
3%
D) Запрос не вернёт ни одной строки.
SELECT t1.id,
(SELECT SUM(value) FROM transactions t2 WHERE t2.customer_id = t1.id AND t2.transaction_date <= t1.transaction_date) AS daily_balance
FROM transactions t1;
26. Что вернет SQL-запрос выше?
Anonymous Quiz
44%
A) Список клиентов и сумму транзакций (баланс) до (включительно) каждой даты.
20%
B) Список клиентов и сумма транзакций после (включительно) каждой даты.
24%
C) Общий баланс клиентов, сгруппированный по идентификатору.
12%
D) Список клиентов и сумма транзакций на каждую дату, без учета предыдущих.
A)
B)
C)
D)
SELECT id, salary,
(SELECT COUNT(*) FROM employees e2 WHERE e2.salary >= e1.salary) AS rank
FROM employees e1;
B)
SELECT id, salary,
(SELECT COUNT(*) FROM employees WHERE salary < e.salary) AS rank
FROM employees e;
C)
SELECT id, salary,
(SELECT COUNT(*) FROM employees WHERE salary >= salary) AS rank
FROM employees;
D)
SELECT id, salary,
(SELECT COUNT(*) FROM employees e2 WHERE e2.salary < e.salary) AS rank
FROM employees e;
27. Какой из запросов выше корректно использует коррелированный подзапрос для создания нового столбца с нумерацией сотрудников в зависимости от их зарплаты?
Anonymous Quiz
52%
A)
19%
B)
14%
C)
14%
D)
SELECT e.id, e.name,
(SELECT AVG(salary) FROM employees e2 WHERE e2.department_id = e.department_id) AS avg_department_salary
FROM employees e;
28. Что выведет SQL запрос, если в таблице employees есть значения NULL в столбце salary?
Anonymous Quiz
25%
A) Среднее значение зарплат по каждому отделу, включая значения NULL.
33%
B) Среднее значение зарплат по каждому отделу, исключая значения NULL.
4%
C) Запрос вернёт только строки с ненулевыми зарплатами.
38%
D) Запрос вернёт среднее значение зарплат только тех сотрудников, у которых salary не равно NULL.
Даны две таблицы
Таблица t1
| a1 |
|-------- |
| 2 |
| 4 |
| 4 |
| 5 |
| null |
Таблица t2
-----------
| a2 |
|---------|
| 2 |
| 2 |
| 4 |
| 4 |
| 7 |
| null |
| null |
A)
B)
C)
D)
| a1 | a2 |
|-----|-----|
| 2 | 2 |
| 4 | 4 |
| 4 | 4 |
|null |null |
B)
| a1 | a2 |
|-----|-----|
| 2 | 2 |
| 2 | 2 |
| 4 | 4 |
| 4 | 4 |
| 4 | 4 |
| 4 | 4 |
C)
| a1 | a2 |
|-----|-----|
| 2 | 2 |
| 2 | 2 |
| 4 | 4 |
| 4 | 4 |
| 4 | 4 |
| 4 | 4 |
|null |null |
|null |null |
D)
| a1 | a2 |
|-----|-----|
| 2 | 2 |
| 4 | 4 |
| 4 | 4 |
|null |null |
29. Какой результат выведет запрос:
SELECT * FROM t1 JOIN t2 ON a1 = a2
SELECT * FROM t1 JOIN t2 ON a1 = a2
Anonymous Quiz
37%
A)
26%
B)
22%
C)
15%
D)