SQL задачи
9.99K subscribers
216 photos
174 links
SQL задачи для подготовки к собеседованию.

SQL тесты для проверки знаний.

№ 5635948084

SQL запросы к конкретной Базе данных с решением и разбором

По вопросам рекламы: @anothertechrock
Download Telegram
Ответ к Задаче 45

SELECT 
(SELECT count(*) FROM patients WHERE gender='M') AS male_count,
(SELECT count(*) FROM patients WHERE gender='F') AS female_count;

#задача
Какой запрос выбирает все записи из таблицы person, в которой значения поля name начинаются с An? (MySQL)
Anonymous Quiz
2%
SELECT * FROM person WHERE name LIKE 'An//';
86%
SELECT * FROM person WHERE name LIKE 'An%';
4%
SELECT * FROM person WHERE name LIKE 'An';
7%
SELECT * FROM person WHERE name 'An%';
1%
Посмотреть ответ
Задача 46

Напишите запрос, чтобы вывести из таблицы patients имена и фамилии пациентов, имеющих аллергию на пенициллин или морфин ("Penicillin", "Morphine"), а также названия препаратов, на которые у них аллергия. Т.е. выводим значения столбцов first_name, last_name и allergies.

Выведите результаты, отсортированные в порядке возрастания сперва по препаратам, вызывающим аллергию, затем по именам, затем по фамилиям.

#задача
Ответ к Задаче 46

SELECT first_name, last_name, allergies FROM patients WHERE allergies IN ('Penicillin', 'Morphine') ORDER BY allergies, first_name,  last_name;

#задача
Задача 47

Напишите запрос, чтобы найти в таблице admissions пациентов, которые неоднократно обращались к врачу по поводу одного и того же диагноза. Вывести patient_id и diagnosis.

#задача
Ответ к Задаче 47

SELECT patient_id, diagnosis FROM admissions GROUP BY patient_id, diagnosis HAVING COUNT(*) > 1;

#задача
Задача 48

Напишите запрос, чтобы вывести из таблицы patients общее число пациентов (num_patients) по городам. Результат нужно отсортировать в порядке убывания по количеству пациентов, а затем, в порядке возрастания, по названиям городов.

#задача
Ответ к Задаче 48

SELECT city, COUNT(*) AS num_patients FROM patients GROUP BY city ORDER BY num_patients DESC, city asc;

#задача
Если оба аргумента являются целыми числами, то при использовании операторов "-", "+" и "*" результат вычисляется с точностью...
Anonymous Quiz
65%
INTEGER (32 бита)
4%
MEDIUMINT (3 байта)
17%
BIGINT (64 бита)
14%
Посмотреть ответ
Задача 49

Напишите запрос, чтобы вывести из таблиц patients и doctors имена, фамилии и роли (first_name, last_name, role) пациентов и докторов. Роли будут, соответственно, "Patient" или "Doctor".

#задача
Ответ к Задаче 49

SELECT first_name, last_name, 'Patient' as role FROM patients union all select first_name, last_name, 'Doctor' from doctors;

#задача
Есть таблица table1 с колонками id и datetime. Выберите запрос, который вернет максимальное значение id и значение даты для этого id.
Anonymous Quiz
42%
SELECT max(id), datetime from table1 group by datetime;
43%
SELECT id, datetime FROM table 1 order by id desc LIMIT 1;
4%
Посмотреть ответ
Задача 50

Напишите запрос, чтобы вывести из таблицы patients все аллергии (allergies), упорядоченные по их количеству (total_diagnosis - тоже вывести). Удалите из запроса значения NULL.

#задача
Ответ к Задаче 50

SELECT allergies, COUNT(*) AS total_diagnosis FROM patients WHERE   allergies IS NOT NULL GROUP BY allergies
ORDER BY total_diagnosis DESC;

#задача
Все перечисленные ключевые слова относятся к DML (Data Manipulation Language): INSERT, CREATE, DELETE, UPDATE.
Anonymous Quiz
53%
Да
40%
Нет
7%
Узнать ответ
Если в качестве идентификаторов используются номера заказов, что покажет следующий запрос?
SELECT id FROM Orders WHERE year (date) > 2018;
Anonymous Quiz
86%
Номера заказов, сделанных после 2018 года
2%
Уникальные номера заказов
5%
Номера заказов, сделанных до 2018 года
5%
Все варианты неверные
2%
Узнать ответ
С помощью какого ключевого слова можно задать условия фильтрации после выполнения группировки?
Anonymous Quiz
5%
AFTER ORDER
80%
HAVING
3%
SELECT
10%
WHERE
2%
Узнать ответ