Базы данных | Задания для практического занятия 6
Использование UNION, INTERSECT и EXCEPT в PostgreSQL
Вариант 1: Интернет-магазин книг - Анализ жанров
Схема базы данных:
CREATE TABLE genre_books_set1 (
book_id INTEGER,
book_title VARCHAR(255),
genre VARCHAR(50)
);
CREATE TABLE genre_books_set2 (
book_id INTEGER,
book_title VARCHAR(255),
genre VARCHAR(50)
);
INSERT INTO genre_books_set1 (book_id, book_title, genre) VALUES
(1, 'The Girl with the Dragon Tattoo', 'Mystery'),
(2, 'Gone Girl', 'Mystery'),
(3, 'The Lord of the Rings', 'Fantasy'),
(4, 'Pride and Prejudice', 'Romance'),
(5, 'The Da Vinci Code', 'Thriller'),
(6, 'The Hobbit', 'Fantasy');
INSERT INTO genre_books_set2 (book_id, book_title, genre) VALUES
(1, 'The Girl with the Dragon Tattoo', 'Thriller'),
(2, 'Gone Girl', 'Thriller'),
(7, 'To Kill a Mockingbird', 'Drama'),
(8, '1984', 'Science Fiction'),
(9, 'Animal Farm', 'Satire'),
(3, 'The Lord of the Rings', 'Adventure');
Задания:
- Найти все названия книг, которые появляются либо в
genre_books_set1
, либо вgenre_books_set2
. - Найти все названия книг, которые появляются и в
genre_books_set1
, и вgenre_books_set2
. - Найти названия книг, которые есть в
genre_books_set1
, но отсутствуют вgenre_books_set2
. - Найти названия книг, которые есть в
genre_books_set2
, но отсутствуют вgenre_books_set1
. - Вывести список всех жанров, присутствующих либо в
genre_books_set1
, либо вgenre_books_set2
. - Вывести список жанров, общих для
genre_books_set1
иgenre_books_set2
. - Вывести список жанров, которые присутствуют в
genre_books_set1
, но отсутствуют вgenre_books_set2
. - Найти все уникальные комбинации (жанр, название_книги) из обеих таблиц.
- Найти все названия книг жанра ‘Mystery’ из
genre_books_set1
илиgenre_books_set2
. - Найти все названия книг жанра ‘Fantasy’, которые присутствуют в обеих таблицах
genre_books_set1
иgenre_books_set2
.
Вариант 2: Университетские курсы - Записи на факультеты
Схема базы данных:
CREATE TABLE cs_courses_enrollments (
student_id INTEGER,
student_name VARCHAR(255),
course_name VARCHAR(255)
);
CREATE TABLE engineering_courses_enrollments (
student_id INTEGER,
student_name VARCHAR(255),
course_name VARCHAR(255)
);
INSERT INTO cs_courses_enrollments (student_id, student_name, course_name) VALUES
(1, 'Alice Smith', 'Introduction to Algorithms'),
(4, 'David Lee', 'Database Systems'),
(2, 'Bob Johnson', 'Data Structures'),
(5, 'Eve White', 'Computer Networks'),
(6, 'Frank Green', 'Operating Systems');
INSERT INTO engineering_courses_enrollments (student_id, student_name, course_name) VALUES
(2, 'Bob Johnson', 'Thermodynamics'),
(1, 'Alice Smith', 'Circuit Analysis'),
(3, 'Charlie Brown', 'Mechanics'),
(7, 'Grace Black', 'Fluid Dynamics'),
(5, 'Eve White', 'Engineering Math');
Задания:
- Найти имена всех студентов, записанных либо на курсы CS, либо на курсы Engineering.
- Найти имена студентов, записанных и на курсы CS, и на курсы Engineering.
- Найти имена студентов, записанных на курсы CS, но не на курсы Engineering.
- Найти имена студентов, записанных на курсы Engineering, но не на курсы CS.
- Вывести список всех названий курсов, предлагаемых факультетами CS или Engineering.
- Вывести список названий курсов, предлагаемых обоими факультетами CS и Engineering.
- Вывести список названий курсов, предлагаемых факультетом CS, но не факультетом Engineering.
- Найти все уникальные комбинации (имя_студента, название_курса) с обоих факультетов.
- Найти имена всех студентов, записанных на курс ‘Database Systems’ или ‘Thermodynamics’ из соответствующих таблиц.
- Найти имена студентов, которые записаны на курс ‘Data Structures’ в
cs_courses_enrollments
И также записаны на курс ‘Thermodynamics’ вengineering_courses_enrollments
.
Вариант 3: Сервис потоковой музыки - Популярность артистов
Схема базы данных:
CREATE TABLE pop_artists_popularity (
artist_name VARCHAR(255),
country VARCHAR(100),
monthly_listeners INTEGER
);
CREATE TABLE rock_artists_popularity (
artist_name VARCHAR(255),
country VARCHAR(100),
monthly_listeners INTEGER
);
INSERT INTO pop_artists_popularity (artist_name, country, monthly_listeners) VALUES
('Taylor Swift', 'USA', 85000000),
('Ed Sheeran', 'UK', 70000000),
('Maroon 5', 'USA', 55000000),
('Justin Bieber', 'Canada', 60000000),
('Ariana Grande', 'USA', 75000000);
INSERT INTO rock_artists_popularity (artist_name, country, monthly_listeners) VALUES
('Queen', 'UK', 45000000),
('The Beatles', 'UK', 50000000),
('Coldplay', 'UK', 65000000),
('Imagine Dragons', 'USA', 70000000),
('Maroon 5', 'USA', 55000000);
Задания:
- Найти имена всех артистов, которые числятся либо как Pop, либо как Rock артисты.
- Найти имена артистов, которые числятся и как Pop, и как Rock артисты.
- Найти имена артистов, которые числятся как Pop артисты, но не как Rock артисты.
- Найти имена артистов, которые числятся как Rock артисты, но не как Pop артисты.
- Вывести список всех стран происхождения для Pop или Rock артистов.
- Вывести список стран, у которых есть артисты и в Pop, и в Rock категориях.
- Вывести список стран, у которых есть Pop артисты, но нет Rock артистов.
- Найти все уникальные комбинации (имя_артиста, страна) из обеих таблиц.
- Найти имена всех артистов из ‘USA’ в таблице
pop_artists_popularity
илиrock_artists_popularity
. - Найти имена артистов из ‘UK’, которые присутствуют в обеих таблицах
pop_artists_popularity
иrock_artists_popularity
.
Вариант 4: Платформа электронной коммерции - Сравнение каталога товаров
Схема базы данных:
CREATE TABLE electronics_products_catalog (
product_name VARCHAR(255),
price DECIMAL(10, 2),
brand VARCHAR(100)
);
CREATE TABLE durable_products_catalog (
product_name VARCHAR(255),
price DECIMAL(10, 2),
brand VARCHAR(100)
);
INSERT INTO electronics_products_catalog (product_name, price, brand) VALUES
('Laptop', 1200.00, 'BrandA'),
('Smartphone', 900.00, 'BrandB'),
('Tablet', 500.00, 'BrandC'),
('Smartwatch', 300.00, 'BrandA'),
('Headphones', 150.00, 'BrandD');
INSERT INTO durable_products_catalog (product_name, price, brand) VALUES
('Chair', 150.00, 'BrandE'),
('Desk', 300.00, 'BrandF'),
('Table', 250.00, 'BrandE'),
('Laptop', 1200.00, 'BrandA'),
('Sofa', 500.00, 'BrandG');
Задания:
- Найти все названия товаров, которые перечислены либо в каталоге электроники, либо в каталоге товаров длительного пользования.
- Найти названия товаров, которые перечислены и в каталоге электроники, и в каталоге товаров длительного пользования.
- Найти названия товаров, которые есть в каталоге электроники, но отсутствуют в каталоге товаров длительного пользования.
- Найти названия товаров, которые есть в каталоге товаров длительного пользования, но отсутствуют в каталоге электроники.
- Вывести список всех брендов, представленных либо в каталоге электроники, либо в каталоге товаров длительного пользования.
- Вывести список брендов, которые встречаются и в каталоге электроники, и в каталоге товаров длительного пользования.
- Вывести список брендов, которые есть в каталоге электроники, но отсутствуют в каталоге товаров длительного пользования.
- Найти все уникальные комбинации (название_товара, цена) из обоих каталогов.
- Найти все названия товаров бренда ‘BrandA’ в таблице
electronics_products_catalog
илиdurable_products_catalog
. - Найти названия товаров, цена которых составляет 300.00 долларов США и которые присутствуют в обеих таблицах
electronics_products_catalog
иdurable_products_catalog
.
Вариант 5: Социальная сеть - Анализ местоположения пользователей
Схема базы данных:
CREATE TABLE sports_users_locations (
username VARCHAR(255),
location VARCHAR(100),
activity VARCHAR(100)
);
CREATE TABLE music_users_locations (
username VARCHAR(255),
location VARCHAR(100),
genre_preference VARCHAR(100)
);
INSERT INTO sports_users_locations (username, location, activity) VALUES
('john_doe', 'New York', 'Basketball'),
('jane_smith', 'London', 'Soccer'),
('peter_jones', 'Paris', 'Tennis'),
('lisa_brown', 'New York', 'Running'),
('mike_davis', 'Tokyo', 'Baseball');
INSERT INTO music_users_locations (username, location, genre_preference) VALUES
('jane_smith', 'London', 'Pop'),
('peter_jones', 'Paris', 'Jazz'),
('linda_williams', 'Los Angeles', 'Rock'),
('mike_davis', 'Tokyo', 'Classical'),
('susan_taylor', 'Chicago', 'Blues');
Задания:
- Найти все имена пользователей, которые числятся либо как пользователи, занимающиеся спортом, либо как пользователи, слушающие музыку.
- Найти имена пользователей, которые числятся и как пользователи, занимающиеся спортом, и как пользователи, слушающие музыку.
- Найти имена пользователей, которые числятся как пользователи, занимающиеся спортом, но не как пользователи, слушающие музыку.
- Найти имена пользователей, которые числятся как пользователи, слушающие музыку, но не как пользователи, занимающиеся спортом.
- Вывести список всех местоположений пользователей, занимающихся спортом, или пользователей, слушающих музыку.
- Вывести список местоположений, в которых есть и пользователи, занимающиеся спортом, и пользователи, слушающие музыку.
- Вывести список местоположений, в которых есть пользователи, занимающиеся спортом, но нет пользователей, слушающих музыку.
- Найти все уникальные комбинации (имя_пользователя, местоположение) из обеих таблиц.
- Найти все имена пользователей, находящихся в ‘New York’, из таблицы
sports_users_locations
илиmusic_users_locations
. - Найти имена пользователей, которые находятся в ‘London’ в обеих таблицах
sports_users_locations
иmusic_users_locations
.
Вариант 6: Навыки сотрудников - Анализ навыков по отделам
Схема базы данных:
CREATE TABLE programming_employees_skills (
employee_name VARCHAR(255),
department VARCHAR(100),
skill VARCHAR(100)
);
CREATE TABLE design_employees_skills (
employee_name VARCHAR(255),
department VARCHAR(100),
skill VARCHAR(100)
);
INSERT INTO programming_employees_skills (employee_name, department, skill) VALUES
('Ava Williams', 'IT', 'Python'),
('Jack Miller', 'Engineering', 'Java'),
('Chloe Davis', 'IT', 'JavaScript'),
('Ryan Moore', 'IT', 'C++'),
('Ella Robinson', 'Finance', 'R');
INSERT INTO design_employees_skills (employee_name, department, skill) VALUES
('Chloe Davis', 'Marketing', 'UI/UX'),
('Mia Taylor', 'Design', 'Graphic Design'),
('Jack Miller', 'Marketing', 'Branding'),
('Olivia Wilson', 'Design', 'Web Design'),
('Ava Williams', 'IT', 'Web Design');
Задания:
- Найти все имена сотрудников, которые указаны как имеющие навыки программирования или дизайна.
- Найти имена сотрудников, которые указаны как имеющие навыки и программирования, и дизайна.
- Найти имена сотрудников, которые указаны как имеющие навыки программирования, но не имеющие навыков дизайна.
- Найти имена сотрудников, которые указаны как имеющие навыки дизайна, но не имеющие навыков программирования.
- Вывести список всех отделов, в которых есть сотрудники с навыками программирования или дизайна.
- Вывести список отделов, в которых есть сотрудники с навыками и программирования, и дизайна.
- Вывести список отделов, в которых есть сотрудники с навыками программирования, но нет сотрудников с навыками дизайна.
- Найти все уникальные комбинации (имя_сотрудника, отдел) из обеих таблиц.
- Найти все имена сотрудников из отдела ‘IT’ в таблице
programming_employees_skills
илиdesign_employees_skills
. - Найти имена сотрудников, которые находятся в отделе ‘IT’ в обеих таблицах
programming_employees_skills
иdesign_employees_skills
.
Вариант 7: Библиотечная система - История выдачи книг
Схема базы данных:
CREATE TABLE recent_loans (
book_id INTEGER,
borrower_id INTEGER,
loan_date DATE
);
CREATE TABLE overdue_loans (
book_id INTEGER,
borrower_id INTEGER,
due_date DATE
);
INSERT INTO recent_loans (book_id, borrower_id, loan_date) VALUES
(1, 101, '2024-01-15'),
(2, 102, '2024-01-20'),
(3, 103, '2024-01-22'),
(1, 104, '2024-01-25'),
(4, 105, '2024-01-28');
INSERT INTO overdue_loans (book_id, borrower_id, due_date) VALUES
(1, 101, '2024-01-22'),
(5, 106, '2024-01-18'),
(6, 107, '2024-01-20'),
(2, 102, '2024-01-29'),
(7, 108, '2024-01-25');
Задания:
- Найти все уникальные значения
book_id
, которые появляются либо вrecent_loans
, либо вoverdue_loans
. - Найти значения
book_id
, которые появляются и вrecent_loans
, и вoverdue_loans
. - Найти значения
book_id
, которые есть вrecent_loans
, но отсутствуют вoverdue_loans
. - Найти значения
book_id
, которые есть вoverdue_loans
, но отсутствуют вrecent_loans
. - Вывести все уникальные значения
borrower_id
из обеих таблиц. - Вывести значения
borrower_id
, у которых есть и недавние, и просроченные книги. - Вывести значения
borrower_id
, у которых есть недавние книги, но нет просроченных. - Найти все уникальные комбинации (
book_id
,borrower_id
) из обеих таблиц. - Найти все значения
book_id
, которые были выданы ‘2024-01-15’ (вrecent_loans
) ИЛИ просрочены по состоянию на ‘2024-01-22’ (вoverdue_loans
). - Найти комбинации
book_id
иborrower_id
, у которыхloan_date
равно ‘2024-01-20’ вrecent_loans
иdue_date
равно ‘2024-01-29’ вoverdue_loans
.
Вариант 8: Управление проектами - Назначение задач
Схема базы данных:
CREATE TABLE frontend_tasks (
task_id INTEGER,
task_name VARCHAR(255),
assigned_to VARCHAR(100)
);
CREATE TABLE backend_tasks (
task_id INTEGER,
task_name VARCHAR(255),
assigned_to VARCHAR(100)
);
INSERT INTO frontend_tasks (task_id, task_name, assigned_to) VALUES
(1, 'Design UI', 'Alice'),
(2, 'Implement Login', 'Bob'),
(3, 'Create Homepage', 'Alice'),
(4, 'Develop Navigation', 'Charlie');
INSERT INTO backend_tasks (task_id, task_name, assigned_to) VALUES
(5, 'Create API', 'David'),
(6, 'Database Setup', 'Eve'),
(2, 'Implement Login', 'Bob'),
(7, 'User Authentication', 'David');
Задания:
- Вывести все уникальные названия задач из frontend и backend.
- Найти названия задач, которые назначены и во frontend, и в backend.
- Найти названия задач, которые назначены во frontend, но не в backend.
- Найти названия задач, которые назначены в backend, но не во frontend.
- Вывести всех уникальных разработчиков (assigned_to) в обеих командах.
- Вывести разработчиков, которым назначены задачи и во frontend, и в backend.
- Вывести разработчиков, которым назначены задачи только во frontend.
- Вывести все уникальные пары (task_id, task_name) из обеих таблиц.
- Найти все задачи, назначенные ‘Alice’ в любой из таблиц.
- Найти название(я) задач, назначенных ‘Bob’ и во frontend, и в backend.
Вариант 9: Управление взаимоотношениями с клиентами (CRM) - Контакты с клиентами
Схема базы данных:
CREATE TABLE sales_contacts (
customer_id INTEGER,
contact_method VARCHAR(50),
contact_date DATE
);
CREATE TABLE support_contacts (
customer_id INTEGER,
contact_method VARCHAR(50),
contact_date DATE
);
INSERT INTO sales_contacts (customer_id, contact_method, contact_date) VALUES
(1, 'Email', '2024-02-01'),
(2, 'Phone', '2024-02-05'),
(3, 'Email', '2024-02-10'),
(1, 'Phone', '2024-02-12');
INSERT INTO support_contacts (customer_id, contact_method, contact_date) VALUES
(2, 'Chat', '2024-02-08'),
(4, 'Email', '2024-02-11'),
(1, 'Phone', '2024-02-15'),
(5, 'Chat', '2024-02-18');
Задания:
- Вывести все идентификаторы клиентов, с которыми связались либо из отдела продаж, либо из службы поддержки.
- Найти идентификаторы клиентов, с которыми связались и отдел продаж, и служба поддержки.
- Найти идентификаторы клиентов, с которыми связался отдел продаж, но не служба поддержки.
- Найти идентификаторы клиентов, с которыми связалась служба поддержки, но не отдел продаж.
- Вывести все методы связи, используемые отделом продаж или службой поддержки.
- Вывести методы связи, используемые и отделом продаж, и службой поддержки.
- Вывести методы связи, используемые отделом продаж, но не службой поддержки.
- Получить все уникальные пары (customer_id, contact_method).
- Вывести все идентификаторы клиентов, с которыми связались по ‘Email’ в любом из отделов.
- Найти идентификатор клиента и метод связи для клиентов, с которыми связались по телефону и отдел продаж, и служба поддержки.
Вариант 10: Здравоохранение - Записи пациентов
Схема базы данных:
CREATE TABLE inpatient_records (
patient_id INTEGER,
patient_name VARCHAR(255),
diagnosis VARCHAR(100)
);
CREATE TABLE outpatient_records (
patient_id INTEGER,
patient_name VARCHAR(255),
diagnosis VARCHAR(100)
);
INSERT INTO inpatient_records (patient_id, patient_name, diagnosis) VALUES
(1, 'John Doe', 'Pneumonia'),
(2, 'Jane Smith', 'Fracture'),
(3, 'Peter Jones', 'Appendicitis');
INSERT INTO outpatient_records (patient_id, patient_name, diagnosis) VALUES
(2, 'Jane Smith', 'Sprain'),
(4, 'Alice Brown', 'Migraine'),
(5, 'Bob Wilson', 'Flu');
Задания:
- Вывести список всех уникальных ID пациентов из записей стационарных и амбулаторных больных.
- Найти ID пациентов, у которых есть записи и в стационаре, и в амбулатории.
- Найти ID пациентов, у которых есть только стационарные записи.
- Найти ID пациентов, у которых есть только амбулаторные записи.
- Вывести список всех уникальных имен пациентов из обоих типов записей.
- Вывести список имен пациентов, у которых есть записи и в стационаре, и в амбулатории.
- Вывести список имен пациентов, у которых есть только стационарные записи.
- Получить уникальные пары (patient_id, patient_name).
- Найти имена всех пациентов с диагнозом ‘Pneumonia’ ИЛИ ‘Migraine’.
- Найти пациента с id=2 в обеих записях.
Вариант 11: Управление запасами - Уровни запасов
Схема базы данных:
CREATE TABLE warehouse_a_stock (
item_id INTEGER,
item_name VARCHAR(100),
quantity INTEGER
);
CREATE TABLE warehouse_b_stock (
item_id INTEGER,
item_name VARCHAR(100),
quantity INTEGER
);
INSERT INTO warehouse_a_stock (item_id, item_name, quantity) VALUES
(1, 'Widget', 100),
(2, 'Gadget', 50),
(3, 'Doodad', 75);
INSERT INTO warehouse_b_stock (item_id, item_name, quantity) VALUES
(2, 'Gadget', 25),
(4, 'Thingamajig', 120),
(5, 'Whatsit', 60);
Задания:
- Вывести список всех уникальных ID товаров на обоих складах.
- Найти ID товаров, которые имеются на обоих складах.
- Найти ID товаров, которые есть на складе A, но не на складе B.
- Найти ID товаров, которые есть на складе B, но не на складе A.
- Вывести список всех уникальных названий товаров на обоих складах.
- Вывести список названий товаров, которые имеются на обоих складах.
- Вывести список названий товаров, которые имеются только на складе A.
- Получить уникальные пары (item_id, item_name).
- Вывести товары, количество которых больше 60 в таблице
warehouse_a_stock
или количество которых больше 100 вwarehouse_b_stock
. - Найти товары с id=2 в обеих таблицах.
Вариант 12: Система бронирования авиабилетов - Расписания рейсов
Схема базы данных:
CREATE TABLE morning_flights (
flight_number VARCHAR(10),
departure_city VARCHAR(100),
arrival_city VARCHAR(100)
);
CREATE TABLE evening_flights (
flight_number VARCHAR(10),
departure_city VARCHAR(100),
arrival_city VARCHAR(100)
);
INSERT INTO morning_flights (flight_number, departure_city, arrival_city) VALUES
('FL101', 'New York', 'Los Angeles'),
('FL102', 'Chicago', 'Miami'),
('FL103', 'New York', 'London'),
('FL104', 'Houston', 'Dallas');
INSERT INTO evening_flights (flight_number, departure_city, arrival_city) VALUES
('FL201', 'Los Angeles', 'New York'),
('FL102', 'Miami', 'Chicago'),
('FL203', 'London', 'Paris'),
('FL204', 'Dallas', 'Houston');
Задания:
- Вывести список всех уникальных номеров рейсов из утренних и вечерних рейсов.
- Найти номера рейсов, которые выполняются и утром, и вечером.
- Найти номера рейсов, которые выполняются только утром.
- Найти номера рейсов, которые выполняются только вечером.
- Вывести список всех уникальных городов отправления по обоим расписаниям.
- Вывести список городов отправления, из которых есть и утренние, и вечерние рейсы.
- Вывести список городов отправления, из которых есть только утренние рейсы.
- Вывести все уникальные пары (flight_number, departure_city).
- Вывести flight_number в Лос-Анджелес утром или в Париж вечером.
- Найти номера рейсов, такие что из ‘New York’ в ‘Los Angeles’ в
morning_flights
и из ‘Los Angeles’ в ‘New York’ вevening_flights
.
Вариант 13: Университетские исследования - Финансирование грантов
Схема базы данных:
CREATE TABLE science_grants (
grant_id INTEGER,
researcher_name VARCHAR(255),
funding_amount DECIMAL(12, 2)
);
CREATE TABLE humanities_grants (
grant_id INTEGER,
researcher_name VARCHAR(255),
funding_amount DECIMAL(12, 2)
);
INSERT INTO science_grants (grant_id, researcher_name, funding_amount) VALUES
(1, 'Dr. Smith', 150000.00),
(2, 'Dr. Jones', 200000.00),
(3, 'Dr. Brown', 100000.00),
(4, 'Dr. Davis', 120000.00);
INSERT INTO humanities_grants (grant_id, researcher_name, funding_amount) VALUES
(5, 'Dr. Wilson', 80000.00),
(2, 'Dr. Jones', 90000.00),
(6, 'Dr. Garcia', 75000.00),
(7, 'Dr. Miller', 60000.00);
Задания:
- Вывести список всех уникальных ID грантов из таблиц Science и Humanities.
- Найти ID грантов, которые выданы и в Science, и в Humanities.
- Найти ID грантов, выданных в Science, но не в Humanities.
- Найти ID грантов, выданных в Humanities, но не в Science.
- Вывести список всех уникальных имен исследователей из обоих типов грантов.
- Вывести список исследователей, получивших гранты и в Science, и в Humanities.
- Вывести список исследователей, получивших гранты в Science, но не в Humanities.
- Получить все уникальные пары (grant_id, researcher_name).
- Найти гранты, сумма финансирования которых больше 120000 в
science_grants
ИЛИ сумма финансирования которых больше 80000 вhumanities_grants
. - Найти гранты исследователя ‘Dr. Jones’ в обеих таблицах.
Вариант 14: Недвижимость - Объявления о собственности
Схема базы данных:
CREATE TABLE apartments_for_rent (
property_id INTEGER,
address VARCHAR(255),
rent DECIMAL(10, 2)
);
CREATE TABLE houses_for_sale (
property_id INTEGER,
address VARCHAR(255),
price DECIMAL(12, 2)
);
INSERT INTO apartments_for_rent (property_id, address, rent) VALUES
(1, '123 Main St', 1500.00),
(2, '456 Oak Ave', 1200.00),
(3, '789 Pine Ln', 1800.00);
INSERT INTO houses_for_sale (property_id, address, price) VALUES
(4, '101 Elm Rd', 350000.00),
(2, '456 Oak Ave', 280000.00),
(5, '222 Maple Dr', 420000.00);
Задания:
- Вывести список всех уникальных ID недвижимости по аренде и продаже.
- Найти ID недвижимости, которая выставлена и на аренду, и на продажу.
- Найти ID недвижимости, которая сдается в аренду, но не продается.
- Найти ID недвижимости, которая продается, но не сдается в аренду.
- Вывести список всех уникальных адресов из обоих типов объявлений.
- Вывести список адресов, по которым есть объявления и об аренде, и о продаже.
- Вывести список адресов, по которым есть только объявления об аренде.
- Получить уникальные пары (property_id, address).
- Вывести список адресов с арендной платой более 1300 ИЛИ ценой продажи более 300000.
- Найти недвижимость (ID и адрес), расположенную по адресу ‘456 Oak Ave’ в обоих списках.
Вариант 15: Разработка программного обеспечения - Отслеживание ошибок
Схема базы данных:
CREATE TABLE critical_bugs (
bug_id INTEGER,
description VARCHAR(255),
reported_by VARCHAR(100)
);
CREATE TABLE minor_bugs (
bug_id INTEGER,
description VARCHAR(255),
reported_by VARCHAR(100)
);
INSERT INTO critical_bugs (bug_id, description, reported_by) VALUES
(1, 'Login failure', 'UserA'),
(2, 'Data corruption', 'UserB'),
(3, 'Crash on startup', 'UserC');
INSERT INTO minor_bugs (bug_id, description, reported_by) VALUES
(4, 'UI glitch', 'UserD'),
(2, 'Slow performance', 'UserB'),
(5, 'Typo in error message', 'UserE');
Задания:
- Вывести список всех уникальных ID ошибок как критических, так и незначительных.
- Найти ID ошибок, которые классифицируются как критические и незначительные.
- Найти ID ошибок, которые являются критическими, но не незначительными.
- Найти ID ошибок, которые являются незначительными, но не критическими.
- Вывести список всех уникальных пользователей, сообщивших об ошибках (по обеим таблицам).
- Вывести список пользователей, сообщивших как о критических, так и о незначительных ошибках.
- Вывести список пользователей, сообщивших о критических ошибках, но не о незначительных.
- Получить уникальные пары (bug_id, description).
- Вывести список всех описаний ошибок, о которых сообщил ‘UserB’.
- Найти идентификатор ошибки и описание ошибок, о которых сообщил ‘UserB’ в обеих таблицах.
Инструкции по сдаче
- Создайте новый Google Doc. Пример
- Добавьте ссылку на ваш Google Doc здесь: Google Таблица
