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

时间:2014-06-03 03:59:09

标签: neo4j neo4jclient

我试图获得年龄范围之间男性和女性数量的总值。例如:25岁以下的男性和女性人数。

MATCH (m:user)-[:gender]->(male:gender {type:"male"})
With m AS m25
where  tofloat(m25.birthday) < (timestamp()-788923800000) 
RETURN count(m25)

我想在一个查询中完成这一切,所以我得到的男性和女性数量为13-25,26-25等。我对收集功能感到头疼,因为它们似乎回答了我的问题,但我不确定如何在上述环境中应用它们。

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:1)

您可以使用UNIONs加入的一系列查询,也可以使用一系列WITH子句链接查询。

E.g。

MATCH (m25:user)-[:gender]->(male:gender {type:"male"})
where  tofloat(m25.birthday) < (timestamp()-788923800000)    
RETURN count(m25)
UNION
MATCH (f25:user)-[:gender]->(female:gender {type:"female"})
where  tofloat(f25.birthday) < (timestamp()-788923800000) 
RETURN count(f25)
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
...

HTH