powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Подскажите как реализовать запрос
18 сообщений из 18, страница 1 из 1
Подскажите как реализовать запрос
    #33456753
Alexandr Andreev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите как реализовать запрос
есть таблица для примера
create table rezult (
name varchar(200),
stavka numeric(10,2))

где name фамилия а stavka зароботная плата.

в запросе нужно отсортировать по заработной плате(по убыванию) и выбрать тех
сотрудников зарплата которых составляет 80 процентов от обещей суммы зарплаты.
Знаю как сделать в оракле с помощью аналитических функций есть ли что нибудь
похожее в MYSQL?
...
Рейтинг: 0 / 0
Подскажите как реализовать запрос
    #33456904
DocAl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Или не понял условие, или не сотрудникОВ, а сотрудникА?
...
Рейтинг: 0 / 0
Подскажите как реализовать запрос
    #33456948
Alexandr Andreev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DocAlИли не понял условие, или не сотрудникОВ, а сотрудникА?

Нет именно сотрудников допустим

Иванов 1200
Петров 5000
Васечкин 3000
кувалдин 6000
Тварькин 10000
Веселкин 800

После сортировки

Тварькин 10000
кувалдин 6000
Петров 5000
Васечкин 3000
Иванов 1200
Веселкин 800
---------------
Итого 26000

Запрос должен возвращать

Тварькин 10000
кувалдин 6000
Петров 5000

так как они составляют 80 ппоцентов от итого.
...
Рейтинг: 0 / 0
Подскажите как реализовать запрос
    #33456974
Владимор Конев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexandr AndreevПодскажите как реализовать запрос
есть таблица для примера
create table rezult (
name varchar(200),
stavka numeric(10,2))

где name фамилия а stavka зароботная плата.

в запросе нужно отсортировать по заработной плате(по убыванию) и выбрать тех
сотрудников зарплата которых составляет 80 процентов от обещей суммы зарплаты.
Знаю как сделать в оракле с помощью аналитических функций есть ли что нибудь
похожее в MYSQL?Тут тебе не оракл, аналитических функций нет...
Если версия позволяет делать подзапросы, то делай классическим способом - за два прохода по таблице: один раз проходишь, чтобы собрать вообще всю сумму зарплат и оформляешь результат в виде встроенного представления (в терминах Oracle), второй раз - соединяешь таблицу со встроенным представлением (декартово произведение) для вычисления нужных тебе товарищей. Ну а сортировку наложить - дело нехитрое.
Ну что-то вроде вот этого:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
select name,
       stavka,
       total_sum 
  from rezult,
       (
          select sum(stavka) as total_sum
            from rezult 
       ) v_rez
 where stavka >= total_sum *  0 . 8 
order by stavka desc
...
Рейтинг: 0 / 0
Подскажите как реализовать запрос
    #33456980
Владимор Конев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пардон, кажись не так вопрос понял :-)
...
Рейтинг: 0 / 0
Подскажите как реализовать запрос
    #33457335
rashman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
"ну и запросики у вас" - сказала база данных и зависла (с)
;о)

не, в мускуле вам придется делать несколько проходов...

решение в лоб - это счетчик с LIMIT-ом
увеличиваем счетчик до тех пор, пока результирующая сумма по LIMIT-у сотрудников не станет больше хх%
...
Рейтинг: 0 / 0
Подскажите как реализовать запрос
    #33457337
Alexandr Andreev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rashman"ну и запросики у вас" - сказала база данных и зависла (с)
;о)

не, в мускуле вам придется делать несколько проходов...

решение в лоб - это счетчик с LIMIT-ом
увеличиваем счетчик до тех пор, пока результирующая сумма по LIMIT-у сотрудников не станет больше хх%
Можно пример?
...
Рейтинг: 0 / 0
Подскажите как реализовать запрос
    #33459506
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
set @c= 0 ;
select name, stavka, @c:=@c+stavka as cc, if(@c< 0 . 8 *total, 1 , 0 ) from result
group by name having cc< 0 . 8 *total order by stavka desc;
очень осторожно с этим запросом, глючить может немеряно. total - подставляешь туда сумму ставок.
...
Рейтинг: 0 / 0
Подскажите как реализовать запрос
    #33460877
Alexandr Andreev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maXmo
Код: plaintext
1.
2.
set @c= 0 ;
select name, stavka, @c:=@c+stavka as cc, if(@c< 0 . 8 *total, 1 , 0 ) from result
group by name having cc< 0 . 8 *total order by stavka desc;
очень осторожно с этим запросом, глючить может немеряно. total - подставляешь туда сумму ставок.
Спасибо. Буду пробовать.Хотя после всех заморочек с MySQL... Сам то на работе оракула юзаю. А вот девушке курсовую надо на MySQL. Столько нервов за 3 дня потратил :)
...
Рейтинг: 0 / 0
Подскажите как реализовать запрос
    #33460907
DocAl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, тут всё зависит от того, к чему привык...
Я вот, кажется, раза три переспрашивал, что действительно ли оракл с консоли поставить практически нереально?..
...
Рейтинг: 0 / 0
Подскажите как реализовать запрос
    #33460969
Alexandr Andreev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DocAlНу, тут всё зависит от того, к чему привык...
Я вот, кажется, раза три переспрашивал, что действительно ли оракл с консоли поставить практически нереально?..
Никогда не задумывался.Ну как минимум иксы нужны. Так что наверное невозможно.
...
Рейтинг: 0 / 0
Подскажите как реализовать запрос
    #33460985
DocAl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Оффтоп, конечно, но вот так, априори, ЗАЧЕМ СУБД необходимы иксы??
Вот стоит где-то на техплощадке, в штатах, скажем, ящик в стойке, ни клавиатуры к нему не подключено, ни мышки, ни, тем более, монитора.
Зачем мне на нём нужно что-то кроме консоли?
...
Рейтинг: 0 / 0
Подскажите как реализовать запрос
    #33460991
Alexandr Andreev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ну хотябы для того что бы унивесрал инсталлер запустить :)
...
Рейтинг: 0 / 0
Подскажите как реализовать запрос
    #33461011
DocAl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И как, вы находите этот аргумент разумным?
...
Рейтинг: 0 / 0
Подскажите как реализовать запрос
    #33461032
Alexandr Andreev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DocAlИ как, вы находите этот аргумент разумным?
Я нахожу этот аргумент нормальным. Но допустим этот запрос(только не из такой таблицы эту для примера привел) на оракле я сделал минуты за 3 и в таблице из около 2-х миллионов строк он выполнился за 1,2 секунды.Благодаря оракловому функционалу. На MySQL до сих пор эту задачу решить немогу :( Знаний наверное нехватает.
...
Рейтинг: 0 / 0
Подскажите как реализовать запрос
    #33461048
DocAl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гм. А разве решение, предложенное maXmo не позволяет сделать требуемое?
...
Рейтинг: 0 / 0
Подскажите как реализовать запрос
    #33461069
Alexandr Andreev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DocAlГм. А разве решение, предложенное maXmo не позволяет сделать требуемое?
Честно еще не пробовал. Вчером дома буду попробую.
...
Рейтинг: 0 / 0
Подскажите как реализовать запрос
    #33462649
Alexandr Andreev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DocAlОффтоп, конечно, но вот так, априори, ЗАЧЕМ СУБД необходимы иксы??
Вот стоит где-то на техплощадке, в штатах, скажем, ящик в стойке, ни клавиатуры к нему не подключено, ни мышки, ни, тем более, монитора.
Зачем мне на нём нужно что-то кроме консоли?
Вот специально посмотрел. Ораклу можно поставить с консоли без иксов. Install guide по ораклу.
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Подскажите как реализовать запрос
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]