Професионална програма
Loading...
Bobosam avatar Bobosam 185 Точки

[DB-Fundamentals - Data Aggregation] - Problem 9.Age Groups

Нещо не мога да се преборя с джъджа. Виждам, че има хора, които са се справили. Явно аз бъркам нещо. Кода ми е следния: 

SELECT '[0-10]' AS age_group, COUNT(wd.id) AS wizard_count
FROM wizzard_deposits wd
WHERE wd.age BETWEEN 0 AND 10
UNION ALL
SELECT '[11-20]' AS age_group, COUNT(wd.id) AS wizard_count
FROM wizzard_deposits wd
WHERE wd.Age BETWEEN 11 AND 20
UNION ALL
...........................................................
SELECT'[61+]' AS age_group, COUNT(wd.id) AS wizard_count
FROM wizzard_deposits wd
WHERE wd.Age > 60

 

Тагове:
0
Databases Basics - MySQL
vancho avatar vancho 430 Точки
Best Answer

Аз не мисля, че логиката ти не е много вярна. Виж аз как съм го направил (помъчих се малко, но излезна), ако ти е от полза.

 

SELECT

CASE 
    WHEN age >= 0 AND age < 11 THEN '[0-10]'
    WHEN age >= 11 AND age < 21 THEN '[11-20]'
    WHEN age >= 21 AND age < 31 THEN '[21-30]'
    WHEN age >= 31 AND age < 41 THEN '[31-40]'
    WHEN age >= 41 AND age < 51 THEN '[41-50]'
    WHEN age >= 51 AND age < 61 THEN '[51-60]'
    WHEN age >= 61 THEN '[61+]'

END AS age_group, COUNT(age) AS wizard_count FROM wizzard_deposits

GROUP BY age_group

0
03/10/2016 16:20:22
Bobosam avatar Bobosam 185 Точки

Сега видях къде е разликата, При теб не излиза групата  [0-10] .Понеже няма такива въобще не влиза в този кейс и не се отпечатва, а при мен излиза с каунт нула. Явно условието не е коректно.

Благодаря.

0
GallinaSt avatar GallinaSt 2 Точки

Как групираш по age_group, когато SELECT-клаузата се изпълнява логически след GROUP BY- клаузата и реално тази променлива в  GROUP BY не е видима?

 

0