Софтуерно Инженерство
Loading...
+ Нов въпрос
simeon_petrov avatar simeon_petrov 45 Точки

[Exercise] 5 Data Aggregation * Smallest Deposit Group per Magic Wand Size

Select the deposit group with the lowest average wand size.

select [DepositGroup] FROM
  (SELECT w.DepositGroup AS [DepositGroup], AVG(w.MagicWandSize) AS
    [LongestMagicWand]
     FROM WizzardDeposits AS w
        GROUP BY [DepositGroup]   ) AS Result
        HAVING Result.[LongestMagicWand] = min(Result.LongestMagicWand)

Така не става, някой може ли да каже как трябва да се направи?

Тагове:
0
Databases Basics
vilievkofata avatar vilievkofata 2 Точки
SELECT deposit_group
FROM wizzard_deposits
GROUP BY deposit_group
ORDER BY (SELECT MIN((SELECT AVG(magic_wand_size) FROM wizzard_deposits)) FROM wizzard_deposits)
LIMIT 1;

 

0
StoyanS avatar StoyanS 1 Точки

moje li da obqsnish zasto imame dvoini skobi sled select MIN statement?

 

thx

0
vilievkofata avatar vilievkofata 2 Точки

След ORDER BY не може да има функция, но може да има subquery, който използва функцияата в този случай MIN, всяко subquery е в скоби. А относно защо след MIN имам subquery, защото не може да сложа AVG в MIN, но мога да сложа subquery което ми използва AVG, което е ефективно едно и също.

0
StoyanS avatar StoyanS 1 Точки
Mersi.
0