Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ---------------------------------------------
- --- ЗАДАНИЕ 3
- --- Количество исполнителей в каждом жанре:
- SELECT g.name AS genre, COUNT(ag.artistid) AS artist_count
- FROM genres g
- LEFT JOIN artistgenres ag ON g.id = ag.genreid
- LEFT JOIN artists a ON ag.artistid = a.id
- GROUP BY g.name;
- --- Количество треков, вошедших в альбомы 2019–2020 годов:
- SELECT COUNT(t.id) AS track_count
- FROM tracks t
- INNER JOIN albums a ON t.albumid = a.id
- WHERE a.releaseyear BETWEEN 2019 AND 2020;
- --- Средняя продолжительность треков по каждому альбому (бахнем алиас)
- SELECT a.name AS album_name, AVG(t.duration) AS avg_duration
- FROM albums a
- INNER JOIN tracks t ON a.id = t.albumid
- GROUP BY a.name;
- --- Все исполнители, которые не выпустили альбомы конкретно в 2020 году
- --- (но выпустили в других но нас 2020 интересует, логика исключающая другие годы):
- SELECT DISTINCT ar.name AS artist_name
- FROM artists ar
- LEFT JOIN albumartists aa ON ar.id = aa.artistid
- LEFT JOIN albums al ON aa.albumid = al.id
- WHERE al.releaseyear <> 2020 OR al.releaseyear IS NULL; --- 2020 конкретно выводим всех кто не выпустил
- --- Названия сборников, в которых присутствует конкретный исполнитель (предположим artist_id равен 3):
- SELECT c.name AS collection_name
- FROM collections c
- INNER JOIN collectiontracks ct ON c.id = ct.collectionid
- WHERE ct.trackid IN (
- SELECT t.id
- FROM tracks t
- INNER JOIN albums a ON t.albumid = a.id
- INNER JOIN albumartists aa ON a.id = aa.albumid
- WHERE aa.artistid = 3 -- значение ID можно менять
- );
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement