File size: 3,432 Bytes
97dafec
0731ede
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
71c851f
0731ede
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
97dafec
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
[
  {
    "id": 1,
    "question": "List all the artists name in the database.",
    "gold_sql": "SELECT Name FROM Artist;"
  },
  {
    "id": 2,
    "question": "How many genres are there?",
    "gold_sql": "SELECT COUNT(*) FROM Genre;"
  },
  {
    "id": 3,
    "question": "List the names of the first 5 tracks.",
    "gold_sql": "SELECT Name FROM Track LIMIT 5;"
  },
  {
    "id": 4,
    "question": "Count the number of customers located in the USA.",
    "gold_sql": "SELECT COUNT(*) FROM Customer WHERE Country = 'USA';"
  },
  {
    "id": 5,
    "question": "Find all invoices for the customer with ID 1.",
    "gold_sql": "SELECT * FROM Invoice WHERE CustomerId = 1;"
  },
  {
    "id": 6,
    "question": "List each album title along with the artist's name.",
    "gold_sql": "SELECT Album.Title, Artist.Name FROM Album JOIN Artist ON Album.ArtistId = Artist.ArtistId;"
  },
  {
    "id": 7,
    "question": "How many tracks belong to the 'Rock' genre?",
    "gold_sql": "SELECT COUNT(*) FROM Track JOIN Genre ON Track.GenreId = Genre.GenreId WHERE Genre.Name = 'Rock';"
  },
  {
    "id": 8,
    "question": "Show the total revenue generated from each country.",
    "gold_sql": "SELECT BillingCountry, SUM(Total) FROM Invoice GROUP BY BillingCountry;"
  },
  {
    "id": 9,
    "question": "Find the total number of items sold for each media type.",
    "gold_sql": "SELECT MediaType.Name, SUM(InvoiceLine.Quantity) FROM InvoiceLine JOIN Track ON InvoiceLine.TrackId = Track.TrackId JOIN MediaType ON Track.MediaTypeId = MediaType.MediaTypeId GROUP BY MediaType.Name;"
  },
  {
    "id": 10,
    "question": "List the first and last names of all employees who are Sales Support Agents.",
    "gold_sql": "SELECT FirstName, LastName FROM Employee WHERE Title = 'Sales Support Agent';"
  },
  {
    "id": 11,
    "question": "List the top 5 customers who have spent the most money in total.",
    "gold_sql": "SELECT c.FirstName, c.LastName, SUM(i.Total) as TotalSpent FROM Customer c JOIN Invoice i ON c.CustomerId = i.CustomerId GROUP BY c.CustomerId ORDER BY TotalSpent DESC LIMIT 5;"
  },
  {
    "id": 12,
    "question": "Which artist has the most tracks in the database? Give the name and count.",
    "gold_sql": "SELECT ar.Name, COUNT(t.TrackId) as TrackCount FROM Artist ar JOIN Album al ON ar.ArtistId = al.ArtistId JOIN Track t ON al.AlbumId = t.AlbumId GROUP BY ar.ArtistId ORDER BY TrackCount DESC LIMIT 1;"
  },
  {
    "id": 13,
    "question": "Which genres have more than 100 tracks? List the genre name and count.",
    "gold_sql": "SELECT g.Name, COUNT(t.TrackId) as TrackCount FROM Genre g JOIN Track t ON g.GenreId = t.GenreId GROUP BY g.GenreId HAVING TrackCount > 100;"
  },
  {
    "id": 14,
    "question": "Calculate the average track length in seconds for each genre.",
    "gold_sql": "SELECT g.Name, AVG(t.Milliseconds) / 1000.0 as AvgSeconds FROM Genre g JOIN Track t ON g.GenreId = t.GenreId GROUP BY g.GenreId;"
  },
  {
    "id": 15,
    "question": "Identify the artist who has earned the most revenue from customers in Canada.",
    "gold_sql": "SELECT ar.Name, SUM(il.UnitPrice * il.Quantity) AS Revenue FROM Artist ar JOIN Album al ON ar.ArtistId = al.ArtistId JOIN Track t ON al.AlbumId = t.AlbumId JOIN InvoiceLine il ON t.TrackId = il.TrackId JOIN Invoice i ON il.InvoiceId = i.InvoiceId WHERE i.BillingCountry = 'Canada' GROUP BY ar.ArtistId ORDER BY Revenue DESC LIMIT 1;"
  }
]