按性别划分的neo4j时间戳范围

按性别划分的neo4j时间戳范围,neo4j,neo4jclient,Neo4j,Neo4jclient,我试图得到不同年龄段的男性和女性的总数。例如:25岁以下的男性和女性人数 MATCH (m:user)-[:gender]->(male:gender {type:"male"}) With m AS m25 where tofloat(m25.birthday) < (timestamp()-788923800000) RETURN count(m25) 匹配(m:user)-[:性别]->(男:性别{type:“男”}) 以m为m25 其中tofloat(m25.生日)(男

我试图得到不同年龄段的男性和女性的总数。例如:25岁以下的男性和女性人数

MATCH (m:user)-[:gender]->(male:gender {type:"male"})
With m AS m25
where  tofloat(m25.birthday) < (timestamp()-788923800000) 
RETURN count(m25)
匹配(m:user)-[:性别]->(男:性别{type:“男”})
以m为m25
其中tofloat(m25.生日)<(时间戳()-788923800000)
返回计数(m25)
我想在一个查询中完成这一切,所以我得到13-25、26-25等的男性和女性计数。我对收集函数摸不着头脑,因为它们似乎回答了我的问题,但我不确定如何在上面的上下文中应用它们


任何帮助都将不胜感激

可以使用由联合连接的一系列查询,也可以使用一系列with子句链接查询

例如

匹配(m25:user)-[:性别]->(男性:性别{type:“男性”})
其中tofloat(m25.生日)<(时间戳()-788923800000)
返回计数(m25)
联合
匹配(f25:用户)-[:性别]->(女性:性别{type:“女性”})
其中tofloat(f25.生日)<(时间戳()-788923800000)
返回计数(f25)
联合
...
……或者

MATCH (m25:user)-[:gender]->(male:gender {type:"male"})
where  tofloat(m25.birthday) < (timestamp()-788923800000) 
WITH count(m25) AS male25
MATCH (f25:user)-[:gender]->(male:gender {type:"female"})
where  tofloat(f25.birthday) < (timestamp()-788923800000) 
WITH count(f25) AS female25, male25
...
匹配(m25:user)-[:性别]->(男性:性别{type:“男性”})
其中tofloat(m25.生日)<(时间戳()-788923800000)
计数(m25)为25
匹配(f25:用户)-[:性别]->(男性:性别{类型:“女性”})
其中tofloat(f25.生日)<(时间戳()-788923800000)
计数(f25)为女性25,男性25
...
等等


HTH

我继续使用WITH并将查询链接在一起,但改用可选匹配。1) 它允许每个分组都有标签的完整数据集;2)如果结果为0,则输出显示为0。仅Match未返回任何结果,UNION将零个结果分组在一起。谢谢你的帮助!!
MATCH (m25:user)-[:gender]->(male:gender {type:"male"})
where  tofloat(m25.birthday) < (timestamp()-788923800000) 
WITH count(m25) AS male25
MATCH (f25:user)-[:gender]->(male:gender {type:"female"})
where  tofloat(f25.birthday) < (timestamp()-788923800000) 
WITH count(f25) AS female25, male25
...