|
SQL-запрос, выводящий max(count())
|
|||
---|---|---|---|
#18+
Имеется таблица: emp(ename, deptno) - люди и их подразделение. Необходимо вывести список людей, работающих в подразделении с максимальным количеством сотрудников. Вот с таким кодом, у меня выводит только количество, но необходимо имена, не понимаю как это реализовать: авторselect max(mycount) from(select deptno, count(ename) mycount from emp group by deptno); ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2019, 17:24 |
|
SQL-запрос, выводящий max(count())
|
|||
---|---|---|---|
#18+
alexey_grishinn, если отделов с максимальным числом сотрудников окажется больше одного, какой из них выводить? какой-то один случайный? или все? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2019, 17:35 |
|
SQL-запрос, выводящий max(count())
|
|||
---|---|---|---|
#18+
Лучше всего все, но это для данного запроса не так важно ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2019, 17:38 |
|
SQL-запрос, выводящий max(count())
|
|||
---|---|---|---|
#18+
alexey_grishinnсписок людей, работающих в подразделении с максимальным количеством сотрудников. Код: plsql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2019, 17:45 |
|
SQL-запрос, выводящий max(count())
|
|||
---|---|---|---|
#18+
alexey_grishinn, Для начала - получите список отделов, с максимальным числом сотрудников. Для этого вам потребуется (как вариант) HAVING. Далее - получите список сотрудников по отделам из первого этапа. Тут к месту будут JOIN исходной таблицы со встроенным представлением (результат запроса первого этапа). Либо можно решить через фильтр с IN-подзапросом ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2019, 17:48 |
|
SQL-запрос, выводящий max(count())
|
|||
---|---|---|---|
#18+
Elic, Если честно большинство из этих операторов я пока что не знаю и не могу их использовать ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2019, 17:49 |
|
SQL-запрос, выводящий max(count())
|
|||
---|---|---|---|
#18+
alexey_grishinnElic, Если честно большинство из этих операторов я пока что не знаю и не могу их использоватьну тогда пристально смотрите в сторону GROUP BY + HAVING ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2019, 17:51 |
|
SQL-запрос, выводящий max(count())
|
|||
---|---|---|---|
#18+
alexey_grishinnElic, Если честно большинство из этих операторов я пока что не знаю и не могу их использоватькроме того, для "fetch first 1 rows with ties" еще и сервер требуется не ниже версии 12c ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2019, 17:52 |
|
SQL-запрос, выводящий max(count())
|
|||
---|---|---|---|
#18+
alexey_grishinnИмеется таблица: emp(ename, deptno) - люди и их подразделение. Необходимо вывести список людей, работающих в подразделении с максимальным количеством сотрудников. Вот с таким кодом, у меня выводит только количество, но необходимо имена, не понимаю как это реализовать: авторselect max(mycount) from(select deptno, count(ename) mycount from emp group by deptno);кстати, Oracle умеет вложенные агрегаты. Соответственно, для получения именно максимального числа сотрудников - подзапрос не нужен. можно сделать в одно вложение, через вложенные агрегаты: Код: plsql 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2019, 17:56 |
|
SQL-запрос, выводящий max(count())
|
|||
---|---|---|---|
#18+
Щукина Анна, Но для вывода именно списка сотрудников необходимо как раз через GROUP BY + HAVING? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2019, 18:00 |
|
SQL-запрос, выводящий max(count())
|
|||
---|---|---|---|
#18+
alexey_grishinnElic, Если честно большинство из этих операторов я пока что не знаю и не могу их использовать Вам надо решение без аналитики? .... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2019, 18:06 |
|
SQL-запрос, выводящий max(count())
|
|||
---|---|---|---|
#18+
Stax, Нет, но в рамки тех знаний, которые мне нужно использовать это не подходит, т.к. решаю задачу для института ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2019, 18:07 |
|
SQL-запрос, выводящий max(count())
|
|||
---|---|---|---|
#18+
alexey_grishinnя пока что не знаю и не могу их использоватьЛаба, студент? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2019, 18:09 |
|
SQL-запрос, выводящий max(count())
|
|||
---|---|---|---|
#18+
alexey_grishinnЩукина Анна, Но для вывода именно списка сотрудников необходимо как раз через GROUP BY + HAVING?Как один из вариантов - да: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26.
Также, можно решать на аналитике, или на TOP-N-запросах (как показал Elic). В целом, можно придумать сильно больше, чем одно решение. Но большая часть из них будет "вариация на тему". А тема - либо группировка и фильтрация результата группировки, либо аналитика и фильтрация результата аналитики, либо новомодные фичи, типа TOP-N query with ties ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2019, 18:09 |
|
SQL-запрос, выводящий max(count())
|
|||
---|---|---|---|
#18+
Elic, Да, пытаюсь сделать посредством того, что дают в университете ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2019, 18:09 |
|
SQL-запрос, выводящий max(count())
|
|||
---|---|---|---|
#18+
Щукина Анна, Спасибо вам большое! Пока не совсем разобрался с join, но код работает, буду разбираться как! ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2019, 18:14 |
|
SQL-запрос, выводящий max(count())
|
|||
---|---|---|---|
#18+
alexey_grishinnДа, пытаюсь сделать посредством того, что дают в университетеУчиться лень? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2019, 18:15 |
|
SQL-запрос, выводящий max(count())
|
|||
---|---|---|---|
#18+
alexey_grishinn Пока не совсем разобрался с join, но код работает, буду разбираться как! JOIN можно заменить на IN-подзапрос, если в таком синтаксисе вам будет понятнее логика работы запроса: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26.
... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2019, 18:23 |
|
|
start [/forum/topic.php?fid=52&fpage=84&tid=1882782]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
27ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
others: | 314ms |
total: | 449ms |
0 / 0 |