September, 2018
library(DBI)
db <- dbConnect(RSQLite::SQLite(), dbname = "chinook.db")
--Highest Album Price
SELECT a.Title, g.Name AS Genre, SUM(t.UnitPrice) AS Price
FROM Track AS t
JOIN Album AS a ON a.AlbumId = t.AlbumId
JOIN Genre AS g ON t.GenreId = g.GenreID
GROUP BY a.AlbumId
ORDER BY Price DESC
LIMIT 1;
1 records
| Greatest Hits |
Metal |
56.43 |
--Average Album Price By Genre
SELECT Genre, AVG(Price) as Avg_Album_Price
FROM (SELECT a.Title, g.Name AS Genre, SUM(t.UnitPrice) AS Price
FROM Track AS t
JOIN Album AS a ON a.AlbumID = t.AlbumID
JOIN Genre AS g ON t.GenreId = g.GenreID
GROUP BY a.AlbumID
ORDER BY Price DESC ) album_prices
GROUP BY 1
ORDER BY 2 DESC;
Displaying records 1 - 10
| Comedy |
49.75000 |
| Drama |
43.78000 |
| Sci Fi & Fantasy |
42.78500 |
| TV Shows |
31.04400 |
| Easy Listening |
23.76000 |
| Hip Hop/Rap |
17.32500 |
| Pop |
15.84000 |
| R&B/Soul |
15.09750 |
| Latin |
15.05308 |
| Bossa Nova |
14.85000 |
--Sold Tracks By Genre
SELECT Genre, AVG(Sold)
FROM (SELECT t.Name, g.Name AS Genre, t.TrackId IN (SELECT il.TrackId FROM InvoiceLine as il) AS Sold
FROM Track AS t
JOIN Genre AS g ON t.GenreId = g.GenreId) sub
GROUP BY 1
ORDER BY 2 DESC;
Displaying records 1 - 10
| Bossa Nova |
0.9333333 |
| Sci Fi & Fantasy |
0.7692308 |
| Blues |
0.6543210 |
| Metal |
0.6176471 |
| Alternative & Punk |
0.6114458 |
| R&B/Soul |
0.6065574 |
| Latin |
0.5872193 |
| Rock |
0.5744025 |
| Pop |
0.5416667 |
| Jazz |
0.5230769 |
--Most Popular Genres By States In USA
SELECT BillingState AS state, Genre, MAX(num_tracks) AS NumberOfPurchasedTracks
FROM (SELECT i.BillingState, g.Name AS Genre, count(il.TrackID) AS num_tracks
FROM Invoice AS i
JOIN InvoiceLine AS il ON i.InvoiceId = il.InvoiceId AND i.BillingState <> "NA" AND i.BillingCountry = "USA"
JOIN Track AS t ON il.TrackId = t.TrackId
JOIN Genre AS g ON t.GenreId = g.GenreId
GROUP BY 2
ORDER BY 3 DESC) sub
GROUP BY 1;
Displaying records 1 - 10
| AZ |
Alternative & Punk |
50 |
| CA |
Latin |
91 |
| FL |
TV Shows |
14 |
| IL |
Alternative |
5 |
| NV |
Reggae |
6 |
| NY |
Metal |
64 |
| TX |
Drama |
6 |
| UT |
Comedy |
8 |
| WA |
Easy Listening |
3 |
| WI |
Rock |
157 |
--Unique Customers By Composer
SELECT t.Composer, COUNT(DISTINCT i.CustomerId)
FROM Track AS t
JOIN InvoiceLine AS il ON t.TrackId = il.TrackId AND t.Composer <> "NA"
JOIN Invoice AS i ON il.InvoiceId = i.InvoiceId
GROUP BY 1
ORDER BY 2 DESC;
Displaying records 1 - 10
| Steve Harris |
23 |
| U2 |
14 |
| Herbert Vianna |
11 |
| Jimmy Page, Robert Plant |
11 |
| Billy Corgan |
10 |
| Bill Berry-Peter Buck-Mike Mills-Michael Stipe |
9 |
| Gilberto Gil |
9 |
| Chris Cornell |
8 |
| J. C. Fogerty |
8 |
| Robert Plant |
8 |
--Number Of Composers With More Than 1 Listener
SELECT COUNT(num_listeners) AS more_than_one
FROM (SELECT t.Composer, count(DISTINCT i.CustomerId) AS num_listeners
FROM Track AS t
JOIN InvoiceLine AS il ON t.TrackId = il.TrackId AND t.Composer <> "NA"
JOIN Invoice AS i ON il.InvoiceId = i.InvoiceId
GROUP BY 1
ORDER BY 2 DESC) sub
WHERE num_listeners > 1