В настоящее время я пытаюсь выполнить запрос SQL, и мне выдается ошибка: "Select is not valid at this position for this server version, expecting '(' WITH"
. Я прочитал другие сообщения с этой же ошибкой, и похоже, что это связано с отсутствующими запятыми в подзапросе. Насколько я знаю, я не пропускаю запятые.
SELECT employees.Location, AVG(employees.salaries) as AvgLocSal
FROM employees,
(SELECT employees.Location, AVG(employees.salaries) as b
FROM employees
GROUP BY employees.Location) as otherSal
GROUP BY employees.Location
HAVING AvgLocSal >= all(otherSal.b);
Короче говоря, я сравниваю среднюю зарплату по местоположениям и нахожу местоположение с самой высокой зарплатой.
Я могу успешно сделать это, поместив подзапрос в предложение HAVING (как показано ниже), но я действительно не уверен, почему приведенный выше запрос выдает ошибку.
SELECT Location, AVG(salaries) as AvgLocSal
FROM employees
GROUP BY Location
HAVING AvgLocSal >= all(
SELECT AVG(salaries)
FROM employees
GROUP BY Location
);
Я мог бы просто ЗАКАЗАТЬ список по зарплатам, а затем ОГРАНИЧИТЬ до 1, однако это не дало бы желаемых результатов, если бы две зарплаты были одинаковыми.
Любые идеи очень ценятся.
Спасибо, Na sh