Загрузка данных


-- =========================================================================
-- ПРАКТИЧЕСКАЯ РАБОТА: ЗАДАНИЯ ДЛЯ САМОСТОЯТЕЛЬНОГО ВЫПОЛНЕНИЯ
-- =========================================================================

-- 1. Добавьте 4 владельцу машины новую машину БМВ
INSERT INTO Avtomobili (ID_Vladeltsa, Marka, Model, Gosnomer, Tip_kuzova)
VALUES (4, 'BMW', 'X7', 'М444ММ777', 'Кроссовер');


-- 2. Найдите сколько моделей машин есть на парковке по каждой марке автомобиля
SELECT Marka, COUNT(DISTINCT Model) AS Kolichestvo_Modeley
FROM Avtomobili
GROUP BY Marka
ORDER BY Kolichestvo_Modeley DESC;


-- 3. Топ-5 самых часто встречающихся марок
SELECT Marka, COUNT(*) AS Kolichestvo
FROM Avtomobili
GROUP BY Marka
ORDER BY Kolichestvo DESC
LIMIT 5;


-- 4. Сколько машин у каждого владельца?
SELECT ID_Vladeltsa, COUNT(*) AS Kolichestvo_Mashin
FROM Avtomobili
GROUP BY ID_Vladeltsa
ORDER BY Kolichestvo_Mashin DESC;


-- 5. У какого владельца больше всего автомобилей?
SELECT ID_Vladeltsa, COUNT(*) AS Maks_Mashin
FROM Avtomobili
GROUP BY ID_Vladeltsa
ORDER BY Maks_Mashin DESC
LIMIT 1;


-- 6. Какие машины принадлежат владельцу 52?
SELECT * 
FROM Avtomobili 
WHERE ID_Vladeltsa = 52;


-- 7. Какой тип кузова встречается реже всего?
SELECT Tip_kuzova, COUNT(*) AS Kolichestvo
FROM Avtomobili
GROUP BY Tip_kuzova
ORDER BY Kolichestvo ASC
LIMIT 1;


-- 8. Сколько всего уникальных марок представлено?
SELECT COUNT(DISTINCT Marka) AS Vsego_Unikalnih_Marok 
FROM Avtomobili;


-- 9. Сколько госномеров начинается на букву «А»?
-- (Если запрос вернет 0, попробуй поменять русскую 'А' на английскую 'A' в зависимости от того, как вставились данные)
SELECT COUNT(*) AS Nomera_Na_A 
FROM Avtomobili 
WHERE Gosnomer LIKE 'А%';


-- 10. 60 владелец машины переезжает и забирает свою машину. Удалить машину по госномеру или по id.
-- Согласно предоставленным данным, у владельца 60 машина ВАЗ 2101 с ID_Avto = 34. Удаляем по ID:
DELETE FROM Avtomobili 
WHERE ID_Avto = 34;


-- 11. Какие есть внедорожники/кроссоверы?
SELECT * 
FROM Avtomobili 
WHERE Tip_kuzova IN ('Внедорожник', 'Кроссовер');


-- 12. У полиции есть наводки на преступника, но есть только госномер «Е678ХМ190». Найти машину по госномеру.
SELECT * 
FROM Avtomobili 
WHERE Gosnomer = 'Е678ХМ190';


-- 13. Важный клиент хочет найти все Кадилаки на парковке. Выведите список всех Cadillac, отсортированных по модели.
SELECT * 
FROM Avtomobili 
WHERE Marka = 'Cadillac'
ORDER BY Model ASC;


-- 14. Важный соц опрос. У кого из владельцев больше одной машины?
SELECT ID_Vladeltsa, COUNT(*) AS Kolichestvo_Mashin
FROM Avtomobili
GROUP BY ID_Vladeltsa
HAVING COUNT(*) > 1
ORDER BY Kolichestvo_Mashin DESC;


-- 15. Сколько машин каждого типа кузова?
SELECT Tip_kuzova, COUNT(*) AS Kolichestvo_Mashin
FROM Avtomobili
GROUP BY Tip_kuzova
ORDER BY Kolichestvo_Mashin DESC;