Advertisement
Denjamin

ЗАДАНИЕ 4 БОНУС

May 1st, 2024
45
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 1.43 KB | None | 0 0
  1. --------------------------------
  2. --- ЗАДАНИЕ 4 (НЕОБЯЗАТЕЛЬНО)
  3. --- Наименования треков, которые не входят в сборники:
  4. SELECT t.name AS track_name
  5. FROM tracks t
  6. LEFT JOIN collectiontracks ct ON t.id = ct.trackid
  7. WHERE ct.trackid IS NULL;
  8.  
  9.  
  10. --- Исполнитель или исполнители, написавшие самый короткий по продолжительности трек:
  11. SELECT a.name AS artist_name, t.name AS track_name, MIN(t.duration) AS min_duration
  12. FROM artists a
  13. JOIN albumartists aa ON a.id = aa.artistid
  14. JOIN albums al ON aa.albumid = al.id
  15. JOIN tracks t ON al.id = t.albumid
  16. GROUP BY a.name, t.name  
  17. HAVING MIN(t.duration) IN (
  18.     SELECT MIN(duration)
  19.     FROM tracks);
  20.    
  21. --- Названия альбомов, содержащих наименьшее количество треков:
  22. --- Здесь выведет все 5 альбомов так как у меня там по 2 трека в каждом, да примитивно но для урока думаю сойдёт.
  23. SELECT al.name AS album_name,
  24.        COUNT(t.id) AS track_count  
  25. FROM albums al  
  26. LEFT JOIN tracks t ON al.id = t.albumid  
  27. GROUP BY al.id, al.name
  28. HAVING COUNT(t.id) = (
  29.     SELECT COUNT(t2.id)
  30.     FROM albums al2
  31.     LEFT JOIN tracks t2 ON al2.id = t2.albumid
  32.     GROUP BY al2.id
  33.     ORDER BY COUNT(t2.id)
  34.     LIMIT 1
  35. );
  36.  
  37. -- THE END --
  38.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement