У меня есть этот рабочий SQL-запрос:
Select * from company c where c.idcompany =
(SELECT result.idcompany FROM
(SELECT p.idcompany , COUNT(*) AS times FROM person p INNER JOIN company c ON p.idcompany = c.idcompany
GROUP BY c.idcompany, p.idcompany ORDER BY times DESC LIMIT 1)
AS result)
Короче говоря, он выбирает компанию с наибольшим количеством сотрудников (у каждого сотрудника есть личный адрес компании, на которую он работает)
Мне нужна версия JPQL. Это то, что я до сих пор:
Select c from Company c where c.idcompany IN
(SELECT result.idcompany FROM
(SELECT p.idcompany , COUNT(*) AS times FROM Person p JOIN Company c
GROUP BY c.idcompany, p.idcompany ORDER BY times DESC, LIMIT 1)
AS result
Это ошибки, которые я получаю:
StandardWrapperValve [проект]: Servlet.service () для проекта сервлета
выбросил исключение: стек локальных исключений: исключение [EclipseLink-0]
(Eclipse Persistence Services - 2.6.4.qualifier):
org.eclipse.persistence.exceptions.JPQLException
Описание исключения:
[175, 175] В подвыражении отсутствует правая скобка.
[82, 112] Только одно выражение может быть объявлено в предложении SELECT
подзапрос.
[176, 176] Для диапазона должна быть указана идентификационная переменная
объявление переменной.
[177, 177] В выражении IN отсутствует правая скобка.
[197, 204] Порядок по элементам не является допустимым выражением.
[204, 216] Запрос содержит неправильное окончание.
Я новичок в JPQL, и любая помощь будет признательна