2013-07-30 5 views
2

Je suis en train de trouver le pourcentage dans l'exemple suivantCypher Requête - poids retour de chaque relation de correspondance avec poids total

START n=node:name_idx(NAME="ABC") 
match p = n-[r1:LIKES]->m 
with r1.Frequency as Frequency, Sum(r1.Frequency) as Sum 
return Frequency, Sum 

J'espérais obtenir quelque chose comme ça

Frequency  Sum 
12    19 
6    19 
1    19 

et ainsi de suite .

Ce que je reçois est la même valeur dans les colonnes de fréquence et Somme

Frequency  Sum 
    12    12 
    6    6 
    1    1 

Toute suggestion comment obtenir une distribution correcte? Mon but ultime est de trouver le pourcentage en divisant Fréquence/Somme de la ligne de retour. Merci

+0

Pourriez-vous mettre en place un petit sous-ensemble sur http://console.neo4j.org? – Luanne

Répondre

6

Que diriez-vous celui-ci (j'étole le graphique de la console de Luanne):

http://console.neo4j.org/r/3axtkq

START n=node:node_auto_index(name="a") 
MATCH n-[r1:LIKES]->m 
WITH sum(r1.frequency) AS total, n // we want the total... of all frequencies for n 
MATCH n-[r1:LIKES]->m    // we need to get the likes again, because those can't be passed in with and get the total of all at the same time 
RETURN r1.frequency, total, r1.frequency/(total*1.0) // it does integer math unless you force one to be a float 
+0

Ah c'est ce qui a été demandé. Mon mauvais, mal compris – Luanne

+0

C'est l'un de ces cas où je préfère avoir une fonctionnalité de collecte/déroulement au lieu de revenir à la correspondance. –

2

Jetez un oeil à http://console.neo4j.org/r/voavd2

Les données sont:

START n=node(1) 
MATCH n-[r1:LIKES]->m 
RETURN r1,m 

Votre requête renvoie:

START n=node(1) 
MATCH n-[r1:LIKES]->m 
WITH r1.frequency AS Frequency, Sum(r1.frequency) AS Sum 
RETURN Frequency, Sum 

-à-dire regroupés par fréquence, quelle est la somme de toutes les fréquences pour que valeur.

Est-ce ce que vous essayiez d'obtenir?

+0

+1 pour fournir des données d'échantillon :) –

+0

D'accord. +1 pour fournir les données d'échantillon. – Anshul