Самый дальний в первом. Сначала он получает самую высокую зарплату, чем E3, а затем находит наивысшее, что не является (вторым по величине), а затем находит сотрудников, которые соответствуют этой второй самой высокой зарплате.
Для того, чтобы вернуть идентификатор любого сотрудника, у которого есть вторая зарплата с наивысшим рейтингом (галстуки ведут себя так, что все с высшей зарплатой будут устранены на уровне E2, возвращая всех со второй самой высокой зарплатой).
Я подозреваю, что вы получаете downvotes, потому что это было тривиально проверять на sqlfiddle, который также показал бы ваши синтаксические ошибки (не закрывал все скобки).
Вот скрипка из него: http://sqlfiddle.com/#!9/a7d18/6
Не обеспокоен syntax.Just хочет быть ясно, с функционированием заявлений. В случае функции aggegate сначала записываются записи, а затем вычисляется совокупность? –
Я думаю, что самый простой способ описать это: он пытается оценить первую часть (e.salary = X), но затем должен вычислить внутреннюю (X), затем попытается вычислить вторую часть (E2.salary < > Y), но затем нужно вычислить, что внутреннее (Y), поэтому оно вычисляет самый дальний в (Y), затем может оценивать следующий уровень (X), а затем, наконец, может вернуть внешний вид. С точки зрения первой выборки, а затем агрегации, предполагающей блокировку по умолчанию, она извлекается, но не позволяет кому-либо изменять значения, пока они заканчивают все остальное. Он не выполняет предварительную выборку, он просто вычисляет каждый запрос как полное действие. –