![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
||||
|
||||
|
Всем привет
есть база BASE в нем столбец где указано должности(сантехник, маляр, менеджер) сотрудников как написать SQL запрос чтоб на экран вывести список людей чье количество больше в зависимости от должности по запросу select doljnost, count(*) as Count from BASE group by doljnost получаю результать Менеджер - 10 Сантехник - 12 Маляр - 14 как можно реализовать запрос одной строкой чтоб вывести на экран тех чье количество больше в зависимости от должности? |
|
#2
|
||||
|
||||
|
Если я правильно понял, то вам нужно просто отсортировать по убыванию выборку:
Код:
select doljnost, count(*) as Cnt from BASE group by doljnost order by Cnt desc |
|
#3
|
||||
|
||||
|
нет не совсем
нужно узнать на какой должности работают больше всех сотрудников и выводить на экран их имена я только начал изучать SQL а задачу препод поставил такую select * from BASE // выводим все столбики select doljnost, count(*) as cnt from BASE group by doljnost // оставляет только столбик должность и CNT а чтоб узнать в какой должности работают больше всех сотрудников нужно получить доступ к максимальной значении CNT и select max(cnt) from (select doljnost, count(*) as cnt from BASE group by doljnost) // возвращает результат где уже только одно значение и появляется вопрос - возможно ли в одной строке совершить все процедуру?? |
|
#4
|
||||
|
||||
|
Можно и одно строкой, но не одним запросом. Вложенный запрос придется использовать:
Код:
SELECT Sotrudnik FROM Base where Doljnost = (select top 1 Doljnost from Base group by Doljnost order by Count(Doljnost) desc); |
| Этот пользователь сказал Спасибо Страдалецъ за это полезное сообщение: | ||
Electronic_Arts (22.01.2016)
| ||
|
#5
|
||||
|
||||
|
Wow как это сработало
а что означает TOP 1 ? |
|
#6
|
||||
|
||||
|
Я столько литературы пролистал в сети про SQL но ни где не видел это по этому спрашиваю...просто сейчас заметил что если его не ставить то выдает ошибку
|