|
|
Регистрация | << Правила форума >> | 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 но ни где не видел это по этому спрашиваю...просто сейчас заметил что если его не ставить то выдает ошибку
Нет ничего не возможного. Вопрос только во времени... |
#7
|
|||
|
|||
Top 1 означает, что надо вернуть одну запись от начала результата. Если его убрать, то получится, что ты сравниваешь поле со списком значений, что, естественно, приводит к ошибке. Проблема в том, что именно эта конструкция разная у разных БД.
|
Этот пользователь сказал Спасибо lmikle за это полезное сообщение: | ||
Electronic_Arts (22.01.2016)
|
#8
|
||||
|
||||
Спасибо ребята!
Нет ничего не возможного. Вопрос только во времени... |
#9
|
||||
|
||||
Цитата:
Цитата:
|
Этот пользователь сказал Спасибо Admin за это полезное сообщение: | ||
Electronic_Arts (22.01.2016)
|