-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathQuery3.sql
More file actions
38 lines (30 loc) · 962 Bytes
/
Copy pathQuery3.sql
File metadata and controls
38 lines (30 loc) · 962 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
DROP PROCEDURE IF EXISTS Query3;
DELIMITER //
CREATE PROCEDURE Query3(IN this_genre VARCHAR(50))
BEGIN
IF (SELECT COUNT(artistGenre) FROM Artist WHERE artistGenre = this_genre > 0) THEN
WITH
PopArtists AS (
SELECT *
FROM Artist
WHERE artistGenre = this_genre ),
PopArtistSongID AS (
SELECT songID as sid
FROM PopArtists JOIN SongReleases ON PopArtists.artistID = SongReleases.artistID
),
PopSongs AS (
SELECT *
FROM Song JOIN PopArtistSongID ON Song.songID = PopArtistSongID.sid
)
SELECT ROUND(avg(duration), 2) as avg_duration,
ROUND(avg(danceability), 2) as avg_danceability,
ROUND(avg(energy), 2) as avg_energy,
ROUND(avg(instrumentalness), 2) as avg_instrumentalness,
ROUND(avg(liveness), 2) as avg_liveness,
ROUND(avg(speechiness), 2) as avg_speechiness,
ROUND(avg(valence), 2) as avg_valence,
ROUND(avg(tempo), 2) as avg_tempo
FROM PopSongs;
END IF;
END; //
DELIMITER ;