/
ssstrekoza
/
Work_with_SQL
Обзор
Документация
Войти
/
ssstrekoza
/
Work_with_SQL
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
main
Number_2_3_4.sql
111 строк
4 KB
Elena Dekho
Numbers 1, 2, 3, 4 added
12 окт 2025, 04:03
12 окт 2025, 04:03
4f4e3c0
Код
Авторство
О чём код?
-- Задание 2 -- SELECT-запросы -- Название и продолжительность самого длинного трека SELECT track_name, duration FROM track ORDER BY duration DESC LIMIT 1; -- Названия треков, продолжительность которых не менее 3,5 минут SELECT track_name FROM track WHERE duration >= 210; -- Названия сборников, вышедших в период с 2018 по 2020 год включительно SELECT collection_name FROM collection WHERE release_year BETWEEN 2018 AND 2020; -- Исполнители, чьё имя состоит из одного слова SELECT performer_name FROM performer WHERE performer_name NOT LIKE '% %'; -- Название треков, которые содержат слово «мой» или «my» SELECT track_name FROM track WHERE LOWER(track_name) LIKE '%мой%' OR LOWER(track_name) LIKE '%my%'; -- Задание 3 -- SELECT-запросы -- Количество исполнителей в каждом жанре SELECT g.genre_name, COUNT(gp.performer_id) AS performer_count FROM genre g JOIN genre_performers gp ON g.id = gp.genre_id GROUP BY g.id, g.genre_name; -- Количество треков, вошедших в альбомы 2019–2020 годов SELECT COUNT(*) AS track_count FROM track t JOIN album a ON t.album_id = a.id WHERE a.release_year BETWEEN 2019 AND 2020; -- Средняя продолжительность треков по каждому альбому SELECT a.album_name, AVG(t.duration) AS avg_duration FROM album a JOIN track t ON a.id = t.album_id GROUP BY a.id, a.album_name; -- Все исполнители, которые не выпустили альбомы в 2020 году SELECT DISTINCT p.performer_name FROM performer p WHERE p.id NOT IN ( SELECT aa.performer_id FROM album_artists aa JOIN album a ON aa.album_id = a.id WHERE a.release_year = 2020 ); -- Названия сборников, в которых присутствует исполнитель Troye Sivan SELECT DISTINCT c.collection_name FROM collection c JOIN tracks_in_collections tic ON c.id = tic.collection_id JOIN track t ON tic.track_id = t.id JOIN album a ON t.album_id = a.id JOIN album_artists aa ON a.id = aa.album_id JOIN performer p ON aa.performer_id = p.id WHERE p.performer_name = 'Troye Sivan'; -- Задание 4 -- SELECT-запросы -- Названия альбомов, в которых присутствуют исполнители более чем одного жанра SELECT DISTINCT a.album_name FROM album a JOIN album_artists aa ON a.id = aa.album_id JOIN performer p ON aa.performer_id = p.id JOIN genre_performers gp ON p.id = gp.performer_id GROUP BY a.id, a.album_name HAVING COUNT(DISTINCT gp.genre_id) > 1; -- Наименования треков, которые не входят в сборники SELECT track_name FROM track WHERE id NOT IN ( SELECT track_id FROM tracks_in_collections ); -- Исполнитель или исполнители, написавшие самый короткий по продолжительности трек -- теоретически, таких треков может быть несколько SELECT DISTINCT p.performer_name FROM performer p JOIN album_artists aa ON p.id = aa.performer_id JOIN track t ON aa.album_id = t.album_id WHERE t.duration = (SELECT MIN(duration) FROM track); -- Названия альбомов, содержащих наименьшее количество треков SELECT a.album_name FROM album a JOIN track t ON a.id = t.album_id GROUP BY a.id, a.album_name HAVING COUNT(t.id) = ( SELECT COUNT(track.id) FROM track GROUP BY track.album_id ORDER BY COUNT(track.id) LIMIT 1 );