Тестовые задачи

Задание №1
Даны таблицы. Получить список в виде: Адрес – Количество проживающих людей. Только адреса, по которым проживает больше 2-х человек.

A
ID_PERSON PERSON_NAME ID_ADDRESS
1 Иванов 1
2 Петров 2
3 Сидоров 3
4 Михайлова 3
B
ID_ADDRESS ADDRESS_STRING
1 Красная пл., 1
2 Проспект Мира, 12а
3 Озерная ул., 3

Вариант запроса

SELECT b.address_string AS "Адрес",
       COUNT(a.id_person) AS "Количест. людей"
  FROM b
  JOIN a
    ON a.id_address = b.id_address
 GROUP BY b.address_string
HAVING COUNT(a.id_person) > 2;
/

Задание №2
Дана таблица A.

ID_PERSON PERSON_NAME
1 Гранин
2 Петров
3 Алексеев
4 Михайлова

Сколько записей вернет запрос:

SELECT * FROM a WHERE a.person_name LIKE '%ОВ';
/

Задание №3
Дана таблица A.

ID_PERSON PERSON_NAME
1 Гранин
2 Петров
3 Алексеев
4 Михайлова

Сколько записей вернет запрос:

SELECT MAX(a.id_person) AS max_id FROM a WHERE a.id_person > 10;
/

Одну строку с пустым значением (NULL).
Задание №4
Даны таблицы A и B.

A
ID_PERSON NAME ID_DEPARTMENT
1 Иванов 1
2 Петров 1
3 Сидоров 2
B
ID_DEPARTMENT NAME
1 Отдел 1
2 Отдел 2
3 Отдел 3

Какие наборы данных вернут запросы:

SELECT a.name, d.name
  FROM a
  JOIN d
    ON d.id_department = a.id_department;
/

Три строки

SELECT a.name, d.name
  FROM a
  LEFT JOIN d
    ON d.id_department = a.id_department;
/

Три строки

SELECT a.name, d.name
  FROM a
 RIGHT JOIN d
    ON d.id_department = a.id_department;
/

Четыре строки

Tags: ,

Leave a Reply

You must be logged in to post a comment.