2013-09-13 4 views
1

У меня есть график, который выглядит следующим образом:Сортировать по кол-ву отношений

User->Friend->Area 
|    (Which area does this friend live in) 
------------->Area<-Friend<-Other users 
       (Which area does this user live in) 

Если я хотел бы найти все области, где у меня нет друзей, я это сделать

start user=node(reference) 
match user-->friend-->area<-[r?:HAVE_A]-friend<--user 
where r is null 
return area 

Работает отлично!

Но как заказать результаты, чтобы я получил область, в которой больше всего пользователей?

ответ

2

Если я правильно понимаю ваш вопрос, вы получаете правильные области, но хотите их упорядочить по количеству пользователей.

В этом случае вам нужен пункт WITH, чтобы получить пользователей, COUNT их, и ORDER BY сортировать их:

START user=node(reference) 
MATCH user-->friend-->area<-[r?:HAVE_A]-friend<--user 
WHERE r is null 
WITH area 
MATCH area<--users 
RETURN area, COUNT(users) as cnt 
ORDER BY cnt DESC 
Смежные вопросы