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

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

5585309210

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

По вопросам рекламы: @anothertechrock
Download Telegram
Задача 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;
11%
SELECT MAX(id), datetime FROM table1, table1 AS table2 WHERE table 1.id = table2.id;
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%
Узнать ответ
Какие условия следует использовать, чтобы получить из таблицы все записи, в которых значение в колонке last_name начинается со строки 'SM'?
Anonymous Quiz
1%
WHERE last_name[1 TO 2] = 'SM'
91%
WHERE last_name LIKE 'SM%'
1%
WHERE last_name EQUATES TO 'SM'
3%
WHERE last_name IS 'SM*'
2%
WHERE last_name = 'SM'
1%
Узнать ответ