powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Медиана, боян?
15 сообщений из 15, страница 1 из 1
Медиана, боян?
    #39817315
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите запрос. Есть табличка с цифрами 1,2,3,4,5,6,7,8,9,10,11,12. Нужно по медиане выдать соседей, 3 слева, 3 справа. Медиана, к примеру 7, результат 4,5,6,7,8,9,10. И второй запрос, от медианы нужно выбрать соседей, сумма чиcел которых не превышала определенного значения, например 20, результат, 5,6,7,8.

SQL 2017.
...
Рейтинг: 0 / 0
Медиана, боян?
    #39817337
WarAnt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Relic Hunter,

row_number() between row_number()/2 - 3 and row_number()/2 + 3
...
Рейтинг: 0 / 0
Медиана, боян?
    #39817345
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WarAnt,

это завернутый селект да еще и с юнион? такое себе.
...
Рейтинг: 0 / 0
Медиана, боян?
    #39817347
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Relic HunterWarAnt,

это завернутый селект да еще и с юнион? такое себе.Огласите криерии вашего фен-шуя.
...
Рейтинг: 0 / 0
Медиана, боян?
    #39817349
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гавриленко Сергей АлексеевичRelic HunterWarAnt,

это завернутый селект да еще и с юнион? такое себе.Огласите криерии вашего фен-шуя.публикуйте, феншуй подождет.
...
Рейтинг: 0 / 0
Медиана, боян?
    #39817359
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Relic Hunter,

Sql давно медиану так считает
...
Рейтинг: 0 / 0
Медиана, боян?
    #39817365
Фотография vikkiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
для навигации в пространстве набора для median - без сортировки/order и счёта/count не обойтись,
отдельное дело - что другие решения под этот вопрос более оптимизированы,
для Intel процессоров есть специальные Си-шные библиотеки (MKL) отлично заточенные
именно расчёты задач векторной/линейной алгебры, можешь при желании написать Assemby
(не говоря даже о специализированных под это дело процессорах с оптимизированной архитектурой/набором команд)

частью той-же SQL Server экосистемы является Machine Learning Services (R или Python)..
в общем если вдруг количество такого рода задач довольно большое (в общеей доле от SQL расчётов)
- то можно попробовать перенаправить нагрузку туда (R например), и сравнить результаты по производительности
...
Рейтинг: 0 / 0
Медиана, боян?
    #39817373
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что по второму запросу? Активнее товарищи.Relic HunterИ второй запрос, от медианы нужно выбрать соседей, сумма чиcел которых не превышала определенного значения, например 20, результат, 5,6,7,8.

SQL 2017.
...
Рейтинг: 0 / 0
Медиана, боян?
    #39817383
Фотография vikkiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Relic Hunter,

там целая сеть проверок в алгоритме,
если нечётное то в середине может быть число >20 изначально
затем в сумме с одной стороной давать >20 а с другой всё ещё <20 ,
т.е. нужно пошагово проверять оба конца (кстати в задаче не говорится как выбирать соседей,
можно и сначала один хвост во всю глубину до нужного максимума,
а потом если кончилось то в другой, или по равноудалённости, что логичнее)

если count() чётное - то опять разветление сценариев / возможных исходов: (схожее с предыдущим) с лева <=20 с права >20,
т.е. при наборе до константы-ограничения нужно проверять в какой-то приоритетности
(если любое: слева/справа <=20 и любое второе уже >20)
{брать меньшее если сумма >20}, если сумма <=20 то оба..
в общем пошагово уходить в глубину через iterations (можно с maxrecursion)

в общем действительно боль по производительности..
...
Рейтинг: 0 / 0
Медиана, боян?
    #39817390
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YouTube Video
...
Рейтинг: 0 / 0
Медиана, боян?
    #39817391
Фотография vikkiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iap,

там нет вероятностей/неопределённостей
(ну может только какой хвост проверять первым: левый/правый),
только жестко прописанные правила, по факту дерево решений.
...
Рейтинг: 0 / 0
Медиана, боян?
    #39817469
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vikkiviap,

там нет вероятностей/неопределённостей
(ну может только какой хвост проверять первым: левый/правый),
только жестко прописанные правила, по факту дерево решений.Что? Вы посмотрели?
Метод с ранжированием переделывается для вас на раз-два.
Причём здесь вообще вероятность или неопределённость?
...
Рейтинг: 0 / 0
Медиана, боян?
    #39817529
Фотография court
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Relic HunterНужно по медиане выдать соседей, 3 слева, 3 справа.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
declare @t table (v float)
insert into @t values (1),(2),(3),(4),(5),(6),(7),(8),(9),(10),(11),(12)--,(13)

--
declare @cnt int=3;

select top (2*@cnt) with ties
	v
	--,abs((count(*)over()+1)/2.0 - row_number()over(order by v)) 
from @t 
order by abs((count(*)over()+1)/2.0 - row_number()over(order by v))
...
Рейтинг: 0 / 0
Медиана, боян?
    #39817959
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
court,

запрос хорош, но какое отношение это имеет к вопросу?
...
Рейтинг: 0 / 0
Медиана, боян?
    #39818618
Фотография court
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Relic Huntercourt,

запрос хорош, но какое отношение это имеет к вопросу?эээ ...
Relic HunterНужно по медиане выдать соседей, 3 слева, 3 справа.
Это твои слова ?
Вот запрос именно это и делает.
Несогласен ?
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Медиана, боян?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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