166|SQL – The Guild of Gold

Time: 20 Minutes, Difficulty: intermediate, Comments: A diagram of the tables would help as a reference for table/column names.

  1. SELECT DISTINCT QuestLeader
    FROM Quests
  2. SELECT TypeName, Sum(TreasureValue) AS TotalValue
    FROM Treasures AS t INNER JOIN Treasure_Types AS tr ON t.TypeID = tr.TypeID
    GROUP BY TypeName
    ORDER BY Sum(TreasureValue) DESC
  3. SELECT TOP 5 QuestName, Sum(TreasureValue) AS TotalLoot
    FROM Quests AS q INNER JOIN Treasures AS t ON t.QuestID = q.QuestID
    GROUP BY QuestName
    ORDER BY Sum(TreasureValue) DESC
  4. SELECT QuestLeader, QuestName, Round(Avg(TreasureValue), 2) AS AvgTreasureValue
    FROM Quests AS q INNER JOIN Treasures AS t ON t.QuestID = q.QuestID
    GROUP BY QuestLeader, QuestName
    ORDER BY Avg(TreasureValue) DESC
  5. SELECT TypeName, Count(t.TypeID) AS CountFound
    FROM Treasures AS t INNER JOIN Treasure_Types AS tt ON t.TypeID = tt.TypeID
    GROUP BY TypeName
    ORDER BY Count(t.TypeID)

Time to Complete: 15 minutes
Difficulty: Intermediate
Solution

Query 1
SELECT DISTINCT QuestLeader
FROM Quests;

Query 2
SELECT tt.TypeName, sum(t.TreasureValue) as TotalValue
FROM Treasures as t
INNER JOIN Treasure_Types as tt ON t.TypeID = tt.TypeID
GROUP BY tt.TypeName
ORDER BY sum(TreasureValue) DESC

Query 3
SELECT TOP 5 QuestName, sum(TreasureValue) as TotalLoot
FROM Quests as q
INNER JOIN Treasures as t ON t.QuestID = q.QuestID
GROUP BY QuestName
ORDER BY sum(TreasureValue) DESC

Query 4
SELECT QuestLeader, QuestName, round(avg(TreasureValue),2) as AvgTreasureValue
FROM Quests as q
INNER JOIN Treasures as t ON q.QuestID = t.QuestID
GROUP BY QuestLeader, QuestName
ORDER BY avg(TreasureValue) DESC

Query 5
SELECT TypeName, count(t.TypeID) as CountFound
FROM Treasures as t
INNER JOIN Treasure_Types as tt ON t.TypeID = tt.TypeID
GROUP BY TypeName
ORDER BY count(t.TypeID)

Time to complete: 15 min
Difficulty level: Easy
Q1: SELECT DISTINCT Quests.QuestLeader
FROM Quests;
Q2: SELECT TypeName, Sum(TreasureValue) AS TotalValue
FROM Treasures AS t INNER JOIN Treasure_Types AS tt ON t.TypeID = tt.TypeID
GROUP BY TypeName
ORDER BY Sum(TreasureValue) DESC;
Q3: SELECT TOP 5 QuestName, Sum(TreasureValue) AS TotalLoot
FROM Quests AS q INNER JOIN Treasures AS t ON t.QuestID = q.QuestID
GROUP BY QuestName
ORDER BY Sum(TreasureValue) DESC;
Q4: SELECT QuestLeader, QuestName, Round(Avg(TreasureValue), 2) AS AvgTreasureValue
FROM Quests AS q INNER JOIN Treasures AS t ON t.QuestID = q.QuestID
GROUP BY QuestLeader, QuestName
ORDER BY Avg(TreasureValue) DESC;
Q5: SELECT TypeName, Count(t.TypeID) AS CountFound
FROM Treasures AS t INNER JOIN Treasure_Types AS tt ON t.TypeID = tt.TypeID
GROUP BY TypeName
ORDER BY Count(t.TypeID);

Time: 40 minutes
Rating: Unnecessarily Difficult
I was able to work through 1, 2, and 5, but I haven’t been able to get 3 or 4 to work. I wonder if the PKs and FKs on the quests tab is working properly because they’re listed below the data. I compared my answers with other responses, and I believe I should have been able to get something to work if the data was formatted correctly. My friend who’s a senior in cyber security tried to help and after 40 minutes we concluded that something was wrong with the problem itself. The technical difficulty was pretty discouraging. I haven’t been able to get anyone else’s SQLs to work on Assembly for 3 or 4 either.

  1. SELECT DISTINCT quests.field3

FROM Quests;

  1. Select Treasure_Types.TypeName, sum(Treasures.treasureValue) AS TotalValue

FROM Treasures INNER JOIN Treasure_Types ON Treasures.TypeID = Treasure_Types.TypeID

Group By Treasure_Types.TypeName

Order By sum(Treasures.treasureValue) DESC;

  1. SELECT TOP 5 q.Field2 AS QuestName, SUM(t.TreasureValue) AS TotalLoot

FROM Quests as q INNER JOIN Treasures AS t ON q.Field1 =T.QuestID

GROUP BY q.Field2

ORDER BY SUM(TreasureValue) DESC;

  1. SELECT Quests.Field3 AS QuestLeader, Quests.Field2 AS QuestName, Round(Avg(Treasures.TreasureValue)2) AS AvgTreasureValue

FROM Quests INNER JOIN Treasures ON Quests.Field1 = Treasures.QuestID;

Group By Quests.Field3

Order By Avg(Treasures.TreasureValue) DESC;

  1. SELECT Treasure_TypesTypeName, Count(Treasures.TypeID) AS CountFound

FROM Treasures INNER JOIN Treasure_Types ON Treasures.TypeID = Treasure_Types.TypeID

GROUP BY Treasure_Types.TypeName

ORDER BY Count(Treasures.TypeID);

TIME: 25 min
Difficulty: Intermediate
Notes: The quests table has the column values as field 1, field 2, field 3. Wherefore I put the fields in my SQL then renamed them.
Solution:
1.
SELECT DISTINCT Field3 AS QuestLeader

FROM Quests

SELECT tt.TypeName, SUM(t.TreasureValue) AS TotalValue

FROM Treasures t INNER JOIN Treasure_Types tt ON t.TypeID = tt.TypeID

GROUP BY t.TypeName

ORDER BY Sum(t.TreasureValue) DESC

SELECT q.Field2 AS QuestName, SUM(t.TreasureValue) AS TotalLoot

FROM Quests q INNER JOIN Treasures t ON q.Field1 = t.QuestID

GROUP BY q.Field2

ORDER BY SUM(t.TreasureValue) DESC

SELECT q.Field3, q.Field2, Round(Avg(t.TreasureValue), 2) AS AvgTreasureValue

FROM Quests q INNER JOIN Treasures t ON t.QuestID = q.Field1

GROUP BY q.Field3, q.field2, avg(t.TreasureValue)

ORDER BY AVG(t.TreasureValue) DESC

SELECT tt.TypeName, Count(t.TypeID) AS CountFound

FROM Treasures t INNER JOIN Treasure_Types tt ON t.TypeID = tt.TypeID

GROUP BY tt.TypeName

ORDER BY COUNT(T.TypeID)

Time to complete: 15 minutes
Difficulty: easy to medium.
Notes: A better problem to start with, not super complex.

  1. SELECT DISTINCT QuestLeader
    FROM Quests;
  2. SELECT TypeName, TotalValue
    FROM Treasures
    INNER JOIN Treasure_Types ON treasures.TypeID = treasure_types.typeID
    GROUP BY TypeName
    ORDER BY SUM(TreasureValue) DESC;
  3. SELECT TOP 5 QuestName, Sum(TreasureValue) AS TotalLoot
    FROM Quests INNER JOIN Treasures ON treasures.QuestID = quests.QuestID
    GROUP BY QuestName
    ORDER BY Sum(TreasureValue) DESC;
  4. SELECT QuestLeader, QuestName, Round(Avg(TreasureValue), 2) AS AvgTreasureValue
    FROM Quests INNER JOIN Treasures ON treasures.QuestID = quests.QuestID
    GROUP BY QuestLeader, QuestName
    ORDER BY Avg(TreasureValue) DESC;
  5. SELECT TypeName, Count(t.TypeID) AS CountFound
    FROM Treasures INNER JOIN Treasure_Types ON treasures.TypeID = treasure_types.TypeID
    GROUP BY TypeName
    ORDER BY Count(treasures.TypeID);

Time: 25 minutes
Difficulty: medium

  1. SELECT DISTINCT QuestLeader
    FROM Quests;
  2. SELECT TypeName, TotalValue
    FROM Treasures
    INNER JOIN Treasure_Types ON treasures.TypeID = treasure_types.typeID
    GROUP BY TypeName
    ORDER BY SUM(TreasureValue) DESC;
  3. SELECT TOP 5 QuestName, Sum(TreasureValue) AS TotalLoot
    FROM Quests INNER JOIN Treasures ON treasures.QuestID = quests.QuestID
    GROUP BY QuestName
    ORDER BY Sum(TreasureValue) DESC;
  4. SELECT QuestLeader, QuestName, Round(Avg(TreasureValue), 2) AS AvgTreasureValue
    FROM Quests INNER JOIN Treasures ON treasures.QuestID = quests.QuestID
    GROUP BY QuestLeader, QuestName
    ORDER BY Avg(TreasureValue) DESC;
  5. SELECT TypeName, Count(t.TypeID) AS CountFound
    FROM Treasures INNER JOIN Treasure_Types ON treasures.TypeID = treasure_types.TypeID
    GROUP BY TypeName
    ORDER BY Count(treasures.TypeID)

30 mins
Intermediate

  1. SELECT DISTINCT QuestLeader
    FROM Quests;
  2. SELECT TypeName, Sum(TreasureValue) AS TotalValue
    FROM Treasures AS t INNER JOIN Treasure_Types AS tt ON t.TypeID = tt.TypeID
    GROUP BY TypeName
    ORDER BY Sum(TreasureValue) DESC;
  3. SELECT TOP 5 QuestName, Sum(TreasureValue) AS TotalLoot
    FROM Quests AS q INNER JOIN Treasures AS t ON t.QuestID = q.QuestID
    GROUP BY QuestName
    ORDER BY Sum(TreasureValue) DESC;
  4. SELECT QuestLeader, QuestName, Round(Avg(TreasureValue), 2) AS AvgTreasureValue
    FROM Quests AS q INNER JOIN Treasures AS t ON t.QuestID = q.QuestID
    GROUP BY QuestLeader, QuestName
    ORDER BY Avg(TreasureValue) DESC;
  5. SELECT TypeName, Count(t.TypeID) AS CountFound
    FROM Treasures AS t INNER JOIN Treasure_Types AS tt ON t.TypeID = tt.TypeID
    GROUP BY TypeName
    ORDER BY Count(t.TypeID);

Time 20 mins
Difficulty easy

1 - Select Distinct QuestLeader
From Quests

2 - Select Typename, sum(TreasureValue) as TotalValue
From Treasures as Tre
Inner Join Treasure_Types as TreTy on TreTy.typeid = Tre.typeid
Group By TypeName
Order By Sum(TreasureValue) Desc

3 - Select Top 5 Questname, Sum(TreasureValue) as TotalLoot
From Quests as q
Inner Join Treasures as T on T.questID = q.questID
Group By q.questName
Order By Sum(t.TreasureValue) desc
4 - Select QuestLeader, QuestName, Round(Avg(t.TreasureValue), 2) as AvgTreasureValue
From Treasures as T
INner Join Quests as q on t.QuestID = q.QuestID
Group By q.QuestLeader, q.QuestName, AvgTreasureValue
Order By Avg(TreasureValue) desc

5 - Select TypeName, Count(t.typeID) as CountFound
From Treasures as t
Inner Join Treasure_Types as TT on t.typeID = tt.typeID
Group By TypeName
Order By Count(t.typeID)

Time: 20 min
Difficulty: difficult
Solution:

  1. SELECT DISTINCT q.QuestLeader
    FROM Quests AS q;

  2. SELECT tt.TypeName, SUM(t.TreasureValue) AS TotalValue
    FROM Treasure_Types AS tt INNER JOIN Treasures AS t ON tt.TypeID=t.TypeID
    GROUP BY tt.TypeName
    ORDER BY SUM(t.TreasureValue) DESC;

  3. SELECT TOP 5 q.QuestName, SUM(t.TreasureValue) AS TotalLoot
    FROM Quests AS q INNER JOIN Treasures AS t ON t.QuestID = q.QuestID
    GROUP BY q.QuestName
    ORDER BY SUM(t.TreasureValue) DESC;

  4. SELECT q.QuestLeader, q.QuestName, ROUND(AVG(t.TreasureValue),2) AS AvgTreasureValue
    FROM Treasures AS t
    INNER JOIN Quests AS q ON t.QuestID = q.QuestID
    GROUP BY q.QuestLeader, q.QuestName, AvgTreasureValue
    ORDER BY AVG(TreasureValue) DESC;

  5. SELECT tt.TypeName, Count(t.TypeID) AS CountFound
    FROM Treasures AS t INNER JOIN Treasure_Types AS tt ON t.TypeID = tt.TypeID
    GROUP BY tt.TypeName
    ORDER BY Count(t.TypeID);

Time to Complete 25 min
Rating: Intermediate
Solutions:

  1. SELECT DISTINCT QuestLeader
    FROM Quests

  2. SELECT Treasure_Types.TypeName, SUM(Treasures.TreasureValue) AS TotalValue
    From Treasures INNER JOIN Treasure_Types ON Treasures.TypeID = Treasure_Types.TypeID
    GROUP BY Treasure_Types.TypeName
    ORDER BY SUM(Treasures.TreasureValue) DESC

  3. SELECT TOP 5 Quests.QuestName, Sum (Treasures.TreasureValue) AS TotalLoot
    FROM Quests INNER JOIN Treasures ON Treasures.QuestID = Quests.QuestID
    GROUP BY Quests.QuestName
    ORDER BY SUM(Treasures.TreasureValue) DESC

  4. SELECT Quests.QuestLeader, Quests.QuestName, ROUND(AVG(Treasures.TreasureValue),2) AS AvgTreasureValue
    FROM Quests INNER JOIN Treasures ON Treasures.QuestID = Quests.QuestID
    GROUP BY Quests.QuestLeader, Quests.QuestName
    ORDER BY AVG(Treasures.TreasureValue) DESC

  5. SELECT TypeName, Count(Treasures.TypeID) AS CountFound
    FROM TREASURES INNER JOIN Treasure_Types ON Treasures.TypeID = Treasure_Types.TypeID
    GROUP BY TypeName
    ORDER BY Count(Treasures.TypeID)

Q1

SELECT DISTINCT QuestLeader

FROM Quests

Q2

SELECT tt.TypeName, sum(t.Treasuryvalue) AS t.TotalValue

FROM Treasures AS t

INNER JOIN Treasures_Types AS tt ON t.typeID=tt.typeID

GROUP BY tt.TypeName;

ORDER BY sum(t.Treasuryvalue) DESC;

Q3

SELECT TOP 5 q.QuestName, sum(t.treasuryvalue) AS TotalLoot

FROM Quests AS q

INNER JOIN Treasures AS t ON q.QuestID=t.QuestID

GROUP BY q.Quests;

ORDER BY sum(t.Treasuryvalue) DESC;

Q4

SELECT QuestLeader, QuestName, Avg(TreasureValue)

FROM Quests

INNER JOIN Treasures AS t ON q.QuestID=t.QuestID

GROUP BY QuestLeader, QuestName;

ORDER BY AvgTreasureValue DESC;

Q5

SELECT tt.TypeName, Count(t.TypeID) AS CountFound

FROM Treasures AS t

INNER JOIN Treasures_Types AS tt ON t.typeID=tt.typeID

GROUP BY tt.TypeName;

ORDER BY Count(t.TypeID);

Time: 25 mins
Difficulty: Intermediate

Solution:

  1. SELECT DISTINCT QuestLeader
    FROM Quests;

  2. SELECT TypeName, Sum(TreasureValue) AS TotalValue
    FROM Treasures AS t INNER JOIN Treasure_Types AS tr ON t.TypeID = tr.TypeID
    GROUP BY TypeName
    ORDER BY Sum(TreasureValue) DESC;

  3. SELECT TOP 5 QuestName, Sum(TreasureValue) AS TotalLoot
    FROM Quests AS q INNER JOIN Treasures AS t ON t.QuestID = q.QuestID
    GROUP BY QuestName
    ORDER BY Sum(TreasureValue) DESC;

  4. SELECT QuestLeader, QuestName, Round(Avg(TreasureValue), 2) AS AvgTreasureValue
    FROM Quests AS q INNER JOIN Treasures AS t ON t.QuestID = q.QuestID
    GROUP BY QuestLeader, QuestName
    ORDER BY Avg(TreasureValue) DESC;

  5. SELECT TypeName, Count(t.TypeID) AS CountFound
    FROM Treasures AS t INNER JOIN Treasure_Types AS tt ON t.TypeID = tt.TypeID
    GROUP BY TypeName
    ORDER BY Count(t.TypeID);

Time: 20 Min
Difficulty: Medium/Hard
Solutions:

  1. SELECT DISTINCT QuestLeader
    FROM Quests;
  2. SELECT TypeName, SUM(TreasureValue) AS TotalValue
    FROM Treasures AS t INNER JOIN Treasure_Types AS tr ON tr.TypeID = t.TypeID
    GROUP BY TypeName
    ORDER BY Sum(TreasureValue) DESC;
  3. SELECT TOP 5 q.QuestName, SUM(t.TreasureValue) AS TotalLoot
    FROM Quests AS q INNER JOIN Treasures AS t ON t.QuestID = q.QuestID
    GROUP BY q.QuestName
    ORDER BY SUM(t.TreasureValue) DESC;
  4. SELECT QuestLeader, QuestName, Round(Avg(TreasureValue), 2) AS AvgTreasureValue
    FROM Quests AS q INNER JOIN Treasures AS t ON t.QuestID = q.QuestID
    GROUP BY QuestLeader, QuestName
    ORDER BY Avg(TreasureValue) DESC;
  5. SELECT TypeName, COUNT(T.TypeID) AS CountFound
    FROM Treasures AS T INNER JOIN Treasure_Types AS TT ON T.TypeID = TT.TypeID
    GROUP BY TypeName
    ORDER BY COUNT(T.TypeID);

Time: 14 Minutes
Difficulty: Easy
Solution:

Q1.
SELECT DISTINCT QuestLeader
FROM Quests;

Q2.
SELECT TypeName, Sum(TreasureValue) AS TotalValue
FROM Treasures AS t INNER JOIN Treasure_Types AS tr ON t.TypeID = tr.TypeID
GROUP BY TypeName
ORDER BY Sum(TreasureValue) DESC;

Q3.
SELECT TOP 5 QuestName, Sum(TreasureValue) AS TotalLoot
FROM Quests AS q INNER JOIN Treasures AS t ON t.QuestID = q.QuestID
GROUP BY QuestName
ORDER BY Sum(TreasureValue) DESC;

Q4.
SELECT QuestLeader, QuestName, Round(Avg(TreasureValue), 2) AS AvgTreasureValue
FROM Quests AS q INNER JOIN Treasures AS t ON t.QuestID = q.QuestID
GROUP BY QuestLeader, QuestName
ORDER BY Avg(TreasureValue) DESC;

Q5.
SELECT TypeName, Count(t.TypeID) AS CountFound
FROM Treasures AS t INNER JOIN Treasure_Types AS tt ON t.TypeID = tt.TypeID
GROUP BY TypeName
ORDER BY Count(t.TypeID);

Time To Complete: 20-30
Difficulty: Intermediate
1.
SELECT DISTINCT QuestLeader
FROM Quest
2.
SELECT t.TypeName, Sum(TreasureValue) AS TotalValue
FROM Treasures AS t INNER JOIN Treasure_Types AS tt ON t.TypeID = tt.TypeID
GROUP BY TypeName
ORDER BY Sum(TreasureValue)DESC;
3.
SELECT TOP 5 q.QuestName, Sum(t.TreasureValue) AS TotalLoot
FROM Quests AS q INNER JOIN Treasures AS t ON q.QuestID = t.QuestID
GROUP BY q.QuestName
ORDER BY Sum(t.TreasureValue) DESC;
4.
SELECT q.QuestLeader, q.QuestName, Round(Avg(TreasureValue),2) AS AvgTreasureValue
FROM Quests AS q INNER JOIN Treasures AS t ON q.QuestID = t.QuestID
GROUP BY q.QuestLeader, q.QuestName
ORDER BY Avg(t.TreasureValue) DESC;
5.
ELECT TypeName, Count(t.TypeID) AS CountFound
FROM Treasures AS t INNER JOIN Treasure_Types AS tt ON t.TypeID = tt.TypeID
GROUP BY TypeName
ORDER BY Count(t.TypeID);

Time to Complete:
Difficulty:

  1. SELECT DISTINCT QuestLeader
    FROM Quests;

  2. SELECT TypeName, SUM(Treasures.TreasureValue) AS TotalValue
    FROM Treasures
    INNER JOIN treasure_types ON treasures.typeID=treasure_types.typeID
    GROUP BY TypeName
    ORDER BY SUM(Treasures.TreasureValue) DESC;

  3. SELECT TOP 5 QuestName, SUM(TreasureValue) AS TotalLoot
    FROM Quests
    INNER JOIN treasures ON quests.questid=treasures.questid
    GROUP BY QuestName
    ORDER BY SUM(TreasureValue) DESC;

  4. SELECT QuestLeader, QuestName, Round(Avg(TreasureValue), 2) AS AvgTreasureValue
    FROM Quests INNER JOIN Treasures ON treasures.QuestID = quests.QuestID
    GROUP BY QuestLeader, QuestName
    ORDER BY Avg(TreasureValue) DESC;

  5. SELECT TypeName, Count(treasures.TypeID) AS CountFound
    FROM Treasures INNER JOIN Treasure_Types AS tt ON treasures.TypeID = tt.TypeID
    GROUP BY TypeName
    ORDER BY Count(treasures.TypeID);

Time to Complete: 25 mins
Difficulty: Easy
Solution:
SELECT DISTINCT QuestLeader
FROM Quests;

SELECT TypeName, SUM(TreasureValue) AS TotalValue
FROM Treasure_Types as tt
INNER JOIN Treasures as t ON tt.TypeID = t.TypeID
GROUP BY TypeName
ORDER BY SUM(TreasureValue) DESC;

SELECT TOP 5 QuestName, Sum(TreasureValue) AS TotalLoot
FROM Quests AS q INNER JOIN Treasures AS t ON t.QuestID = q.QuestID
GROUP BY QuestName
ORDER BY Sum(TreasureValue) DESC;

SELECT QuestLeader, QuestName, Round(Avg(TreasureValue), 2) AS AvgTreasureValue
FROM Quests AS q
INNER JOIN Treasures AS t ON t.QuestID = q.QuestID
GROUP BY QuestLeader, QuestName
ORDER BY Avg(TreasureValue) DESC;

SELECT TypeName, Count(t.TypeID) as CountFound
FROM Treasures as t
INNER JOIN Treasure_Types as tt ON t.TypeID = tt.TypeID
GROUP BY TypeName
ORDER BY Count(t.TypeID) DESC;

Time to Complete: 20 minutes
Rating: Fine
Solution:

  1. SELECT DISTINCT QuestLeader
    FROM Quests;
  2. SELECT TypeName, SUM(TreasureValue) AS TotalValue
    FROM Treasures
    INNER JOIN Treasure_Types ON Treasures.TypeID = Treasure_Types.TypeID
    GROUP BY Treasure_Types.TypeName
    ORDER BY SUM(TreasureValue) DESC;
  3. SELECT TOP 5 QuestName, SUM(TreasureValue) AS TotalLoot
    FROM Quests
    INNER JOIN Treasures ON Treasures.QuestID = Quests.QuestID
    GROUP BY QuestName
    ORDER BY SUM(TreasureValue) DESC;
  4. SELECT q.QuestLeader, q.QuestName, ROUND(AVG(t.TreasureValue), 2) AS AvgTreasureValue
    FROM Quests q
    INNER JOIN Treasures t ON q.QuestID = t.QuestID
    GROUP BY q.QuestLeader, q.QuestName
    ORDER BY ROUND(AVG(t.TreasureValue), 2) DESC;
  5. SELECT tt.TypeName, COUNT(t.TypeID) AS CountFound
    FROM Treasures t
    INNER JOIN Treasure_Types tt ON t.TypeID = tt.TypeID
    GROUP BY tt.TypeName
    ORDER BY COUNT(t.TypeID) ASC;

Time to complete: 30 minutes
Difficulty: Intermediate (some technical difficulties and columns without headers)
Solutions:
1.
SELECT DISTINCT QuestLeader
FROM Quests
2.
SELECT TypeName, sum(TreasureValue) AS TotalValue
FROM Treasures AS t INNER JOIN Treasure_Types AS tt on t.TypeID=tt.TypeID
GROUP BY TypeName
ORDER BY sum(TreasureValue) DESC
3.
SELECT q.QuestName, SUM(t.TreasureValue) AS TotalLoot
FROM Quests AS q INNER JOIN Treasures AS t ON t.QuestID=q.QuestID
GROUP BY q.QuestName
ORDER BY SUM(t.TreasureValue)DESC
LIMIT 5
4.
SELECT QuestLeader, QuestName, Round(Avg(TreasureValue), 2) AS AvgTreasureValue
FROM Quests AS q INNER JOIN Treasures AS t ON t.QuestID = q.QuestID
GROUP BY QuestLeader, QuestName
ORDER BY Avg(TreasureValue) DESC;
5.
SELECT TypeName, Count(t.TypeID) AS CountFound
FROM Treasures AS t INNER JOIN Treasure_Types AS tt ON t.TypeID = tt.TypeID
GROUP BY TypeName
ORDER BY Count(t.TypeID);