Соотнесенный подзапрос в имеющей оговорке - PullRequest
0 голосов
/ 12 ноября 2018

Я работаю с базой данных Oracle по умолчанию scott с дополнительной таблицей PROJECT, где есть 5 столбцов: projno, projname, budget, start_date, end_date.

Я хочу выбрать месяцс наибольшим количеством проектов в конкретном году.В инструкции к моему упражнению сказано, что это должно быть сделано с помощью коррелированного подзапроса.

Я знаю, как это сделать с uncorrelated subquery:

SELECT EXTRACT(month FROM end_date) as "Month", COUNT(*) as "No of projects"
FROM proj
WHERE EXTRACT(year FROM end_date) = 2016
GROUP BY EXTRACT(month FROM end_date)
HAVING COUNT(*) = (SELECT MAX(COUNT(*))
               FROM proj
               WHERE EXTRACT(year FROM end_date) = 2016
               GROUP BY EXTRACT(month FROM end_date))

Вот моя попытка с correlated subquery - это не работает:

SELECT (EXTRACT(month FROM end_date)), COUNT(*) as "liczba"
FROM proj p
WHERE EXTRACT(year FROM end_date) = 2016
GROUP BY EXTRACT(month FROM end_date)
HAVING COUNT(*) =  MAX (SELECT(COUNT(EXTRACT(month FROM proj.end_date)))
                FROM proj
                WHERE EXTRACT(month FROM proj.end_date) = EXTRACT(month FROM p.end_date) 
AND EXTRACT(year FROM proj.end_date) = 2016)  
...