0

I've created a query in neo4j :

MATCH (x:Node)-[r*1..2]->(y:Node) 
WITH x AS x, SIZE(COLLECT(DISTINCT y)) AS y
WITH CASE
    WHEN y=10 THEN x.target
END AS l
return l AS target

But returns something like :

target
____
null
null
"test1"
null
null
"tes56"
...

What I want is :

target
____
"test1"
"tes56"
...

no null in entries. How can I achieve this ?

Maifee Ul Asad
  • 3,992
  • 6
  • 38
  • 86

1 Answers1

1

You used CASE/WHEN (which does not filter out rows) when you should have been using WHERE.

Also, size(collect(DISTINCT )) is really just a count(DISTINCT ) aggregation, so use that instead.

Also to avoid confusion, maybe use a different variable name for the count result.

MATCH (x:Node)-[*1..2]->(y:Node) 
WITH x, count(DISTINCT y) AS yCount
WHERE yCount = 10
RETURN x.target AS target
InverseFalcon
  • 29,576
  • 4
  • 38
  • 51