Вычисление медианы HQL
От: bit85  
Дата: 18.11.07 09:21
Оценка:
Добрый день ! Если кто нибудь сталквался с такой задачей Nhibernate или знает как ее решить помогите решить ее! Очень надо!
Задача заключается в том что бы вычислить медиану(по ценам столбец price) в огромной таблице где более 5 000 000 записей
По сути, эта медиана есть при четном колтчестве чисел — среднее арифметическое между двумя крайними из половин (большее в нижней половине и меньшее в верхней) или число по средине ряда чисел при их нечетном количестве
SQL
как я понял надо вставить индексный столбец
// сортируем
create clusterred index price on myteble(price)
ALTER mytable add k1 int identity
DROP index mytable.price
create clustered index k1 on mytable.price

Select top 1@rows=rows from sysindexes where id=OBJECT_ID('mytable')
order by inid

Select avg(price) as Медиана from mytable
where k1 between @rows/2 and (@rows/2)+SIGN(@rows+1%2)


Мне надо написать запрос HQL(Nhibernate) получить медиану как это сделать??
дело втом что записи добавляется каждый час как оптимизировать запрос
Заранее спасибо!

18.11.07 21:55: Перенесено модератором из '.NET' — Хитрик Денис
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.