SELECT COUNT(*) FROM employees WHERE salary > 50000;
23. Какое из следующих утверждений верно о влиянии NULL на результаты выборки данных в SQL?
Anonymous Quiz
31%
Количество всех строк в таблице employees, где salary больше 50000, включая строки с NULL.
52%
Количество всех строк в таблице employees, где salary больше 50000, исключая строки с NULL.
10%
Количество всех строк в таблице employees, включая строки с NULL.
7%
Количество всех строк в таблице employees, где salary > 50000, включая строки с NULL.
24. Что произойдёт, если в запросе используется условие с NULL?
Anonymous Quiz
3%
A) Запрос вернёт все строки из таблицы employees.
80%
B) Запрос вернёт только строки, где salary равно NULL.
17%
C) Запрос не вернёт ни одной строки.
0%
D) Запрос вернёт все строки, исключая строки с NULL.
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;