Продажи:

Q1) Вернуть имя агента, у которого был самый высокий рост продаж по сравнению с предыдущим годом
А) Первоначально я написал следующий запрос
Select name, (sales_2018-sales_2017) as increase
from sales
where increase= (select max(sales_2018-sales_2017)
from sales)
Я получил ошибку, в которой говорится, что я не могу использовать увеличение с ключевым словом, поскольку "увеличение" - это не столбец, а псевдоним
Я изменил запрос следующим образом:
Select name, (sales_2018-sales_2017) as increase
from sales
where (sales_2018-sales_2017)= (select max(sales_2018-sales_2017)
from sales)
Этот запрос сработал, но я считаю, что лучше написать этот queryi.e вместо того, чтобы писать где (sales_2018-sales_2017) = (выберите max (sales_2018-sales_2017) от продаж).Поэтому мне было интересно, есть ли обходной путь использования псевдонима с помощью где.
Q2) предположим, что таблица выглядит следующим образом, и нас просят вернуть EmpId, имя, получившее рейтинг A в течение 3 лет подряд:

Я написал следующий запрос:
select id,name
from ratings
where rating_2017='A' and rating_2018='A' and rating_2019='A'
Цепочка 3 столбцов (рейтинги_2017, рейтинг_2018, рейтинг_2019) с ANDэто просто, я хочу знать, есть ли лучший способ связать столбцы с помощью AND, когда мы скажем, что мы хотим найти сотрудника с рейтингом «А» в течение 10 лет подряд.
Q3) Последнее, но не менее важное,Я действительно заинтересован в том, чтобы научиться писать сложные SQL-запросы среднего уровня и поднять свои навыки SQL на следующий уровень.Есть ли какой-нибудь сайт, который может мне помочь в этом отношении?