Oracle - Поиск работы с большинством проектов - PullRequest
0 голосов
/ 12 февраля 2020

Итак, я довольно новичок в Oracle и SQL, и я столкнулся с проблемой с предложениями и и макс - я пытался извлечь проекты с большинством имен заданий, которые работали над ними, группируя их по именам работы. Я могу получить доступ к данным очень хорошо, до тех пор, пока предложение, которое не отображает строки выбранного запроса. Я не знаю, что я делаю не так.

    SELECT PROJ_EMP.PROJNO, EMP.JOB, COUNT(EMP.JOB)
FROM EMP, PROJ_EMP
WHERE EMP.EMPNO = PROJ_EMP.EMPNO 
GROUP BY PROJ_EMP.PROJNO, EMP.JOB
HAVING COUNT(EMP.JOB) = 
(SELECT MAX(employees) FROM (SELECT COUNT(PROJ_EMP.PROJNO) AS employees FROM
EMP, PROJ_EMP WHERE EMP.EMPNO = PROJ_EMP.EMPNO GROUP BY EMP.JOB))

1 Ответ

0 голосов
/ 12 февраля 2020

Я думаю, вам нужно найти наибольшее количество заданий в конкретном проекте.

Использовать аналитическую функцию следующим образом:

SELECT PROJNO,JOB,CNT FROM
(SELECT PROJ_EMP.PROJNO, EMP.JOB, 
        COUNT(EMP.JOB) CNT,
        ROW_NUMBER() OVER (PARTITION BY PROJ_EMP.PROJNO ORDER BY COUNT(EMP.JOB) DESC) AS RN
  FROM EMP JOIN PROJ_EMP
    ON EMP.EMPNO = PROJ_EMP.EMPNO 
GROUP BY PROJ_EMP.PROJNO, EMP.JOB)
WHERE RN = 1

Совет дня: Всегда используйте стандартные соединения ANSI.

Cheers !!

...