2013-06-04 2 views
0

бегаю следующий запрос получить средние любит для каждой категорииРасчет статистического резюме в шифровальщике

neo4j-sh (?)$ START n=node:node_auto_index(type = "U") match n-[r:likes]->()-[:mapsTo]->items return AVG(r.count) as AVGLIKES, items.name as CATEGORY; 
==> +------------------------------------------------------+ 
==> | AVGLIKES   | CATEGORY      | 
==> +------------------------------------------------------+ 
==> | 7.122950819672131 | "Culture"      | 
==> | 1.3333333333333333 | "Food & Drinks"     | 
==> | 2.111111111111111 | "Albums"      | 
==> | 2.581081081081081 | "Movies"      | 
==> | 2.1    | "Musicians"      | 
==> | 7.810126582278481 | "Culture Celebs"    | 
==> | 3.1206896551724137 | "TV Shows"      | 
==> | 1.0    | "Apps/Games"     | 
==> | 4.0256410256410255 | "Cars"       | 

Но AVG является встроенной функцией, как рассчитать стандартное отклонение и другие статистические сводки для каждой категории , Я ищу что-то вроде «GROUP BY» в SQL, который будет группировать все для каждой категории, а затем я мог бы написать код или, если есть лучший способ сделать это.

ответ

0

Я добавил функции aggregile_disc, percentile_cont для агрегации в конце прошлого года. Я предполагаю, что они захотят объединить функции для std dev. В теории (я думаю, моя статистика ржавая) вы могли бы рассчитать стандартное отклонение, основанное на некоторых образцах процентилей вместе со средним. Итак, помимо стандартного отклонения, что еще вы ищете?

Обновление: Я сделал запрос нагрузочный для функций агрегации STDEV/STDEVP: https://github.com/neo4j/neo4j/pull/859

+0

диапазон и медиана имеют важное значение. Как я могу это сделать сам. например sd = sqrt (сумма (x-mean (x))^2/(n-1)). Проблема в том, что если я использую сбор, мне все равно нужно иметь среднее значение (x), поэтому я не уверен, как это сделать. – user1848018

+0

Медиан - это то же самое, что и percentile_disc (x, .5), а диапазон - max (x) и мин (х). Вы можете имитировать среднее значение над коллекцией, используя сокращение:: (total = 0, x in coll: total + x)/length (coll). –

+0

Я начал работать над запросом на pull для stdev и stdevp. –

Смежные вопросы