Re[2]: Вычисление медианы HQL
От: bit85  
Дата: 19.11.07 12:03
Оценка:
Здравствуйте, GarryIV, Вы писали:

GIV>Здравствуйте, bit85, Вы писали:


B>>Добрый день ! Если кто нибудь сталквался с такой задачей Nhibernate или знает как ее решить помогите решить ее! Очень надо!

B>>Задача заключается в том что бы вычислить медиану(по ценам столбец price) в огромной таблице где более 5 000 000 записей
B>>По сути, эта медиана есть при четном колтчестве чисел — среднее арифметическое между двумя крайними из половин (большее в нижней половине и меньшее в верхней) или число по средине ряда чисел при их нечетном количестве

GIV>1. Использовать native query

GIV>2. Использовать хранимую процедуру


а как нваписать на етот запрос??? Я первый раз cстолкнулся с HNIBERNATE
select Median=avg(distinct 1.0*price)
from (select d1.price
from Alper d1 cross join Alper d2
group by d1.id,d1.price
having sum(case when d2.price=d1.price then 1 else 0 end)>=
abs(sum(case when d2.price<d1.price then 1 when d2.price>d1.price then -1 else 0
end)))d1
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.