cancel
Showing results for 
Search instead for 
Did you mean: 

Join the community at Nodes 2022, our free virtual event on November 16 - 17.

Consider a pattern/path only once

karora7190
Node Clone

Hi all,

In my graph I have the below node-relationship structure :

(Response)-[:isAnswerTo]->(Question)
(Responder)-[:ANSWERED_WITH]->(Response)

Now a Question can be of type multi select i.e. User can select multiple responses as an answer to that question.
So in case I get the below result :

I need to find how many questions have been answered by a responder.
My query :
OPTIONAL MATCH(rs)-[rw:RESPONDED_WITH]->(response)-[:isAnswerTo]->(q)

But this gets both the responses that were selected.
I only need to know if a question was answered or not.

Kindly help.

6 REPLIES 6

alexandra
Node Link

Hi @karora7190,

Have you tried with RETURN count(rw) ?

Yes @alexandra I did try count(rw).
The issue with that is that it gives the count as 2 in the case mentioned above.
I want to consider the response only once to get the correct number of questions answered

ameyasoft
Graph Maven
Try this:
// find all the questions that were answered..... 
match (q:Question)-[]->(r:Response)
with q, r

//find count of answered questions per each responder.....
match (u:Responder)-[]->(r)-[]-(q)
return u.name as usr, count(q) as cnt

HI @ameyasoft

Thanks for your response.
I need optional match because i want to get the total questions as well.
I am hoping to get :
total questions : 10
responded : 4

Try this:


// find all the questions that were answered..... 
match (q:Question)-[]->(r:Response)
with q, r

//find count of answered questions per each responder.....
match (u:Responder)-[]->(r)-[]-(q)

//find total questions....
match (q1:Questions)
with count(q1) as TotCnt

return u.name as usr, count(q) as cnt, TotCnt

karora7190
Node Clone

Thanks for your time @alexandra and @ameyasoft
I was able to get the desired result.

Nodes 2022
Nodes
NODES 2022, Neo4j Online Education Summit - November 16 - 17, 2022.


Free NODES Training Series


October 19th -

Intro to Neo4j


October 20th -

Healthcare Analytics Using Neo4j


October 25th -

Handling Neo4j data with Apache Hop


October 26th -

Blazing Fast Graphs: Hands-on with Apache Arrow and Neo4j


November 2nd -

Graph EDA Using the Neo4j GDS Client