Разработчик SQL - Как мне заставить MAX & AVG рисовать из одного столбца и фильтровать их? - PullRequest
0 голосов
/ 11 декабря 2018

Мне нужно выяснить AVG и MAX столбца, отобразить результаты в двух столбцах, а затем отфильтровать каждую строку по разнице в 20 и более AVG и MAX.

Мой кодв настоящее время делает большую часть этого, единственное, что мне нужно выяснить, это окончательная фильтрация.

Это мой код:

SELECT b.BOWLERFIRSTNAME || ' ' || b.BOWLERLASTNAME "Bowler 
   Name", TO_CHAR(AVG(bs.RAWSCORE), '999') "Current Average", 
   MAX(bs.RAWSCORE)"High Score"
FROM BOWLERS b
   JOIN BOWLER_SCORES bs USING (BOWLERID)
WHERE bs.RAWSCORE = (SELECT MAX(bs.RAWSCORE)
                       FROM BOWLER_SCORES
                       GROUP BY bs.RAWSCORE)
GROUP BY b.BOWLERFIRSTNAME, b.BOWLERLASTNAME
ORDER BY b.BOWLERFIRSTNAME ASC;

Это то, что я получаю в качестве вывода:

The Above Code Output

Мой код генерирует правильное количество в каждом столбце для каждого игрока, но я не могу понять, как отфильтровать запрос, чтобы исключить любого игрока, который«Наивысший балл» не более чем на 20 баллов выше среднего.

Вот моя цель:

Table goal through query

Я оченьновичок в SQL, поэтому любые дополнительные указатели или советы, которые вы можете иметь, будут оценены!

1 Ответ

0 голосов
/ 11 декабря 2018

Вы можете использовать пункт Имея между группировкой и порядком:

group by <statements>
having max(variable)-avg(variable)>20
order by <statements>
...