gammes d'horodatage à Neo4j par sexe
-
20-12-2019 - |
Question
J'essaie d'obtenir une valeur globale du nombre d'hommes et de femelles entre les gammes d'âge.Par exemple: le nombre d'hommes et de femmes âgés de moins de 25 ans.
MATCH (m:user)-[:gender]->(male:gender {type:"male"})
With m AS m25
where tofloat(m25.birthday) < (timestamp()-788923800000)
RETURN count(m25)
Je veux faire tout cela dans une seule requête pour que je reçois des chiffres masculins et féminins pour 13-25, 26-25 et ainsi.Je me gratte la tête avec les fonctions de la collection car elles semblent répondre à ma question mais je ne sais pas comment les appliquer dans le contexte ci-dessus.
Toute aide serait appréciée!
La solution
Vous pouvez utiliser une série de requêtes reliées par des syndicats ou en chaîne les requêtes avec une série de clauses.
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
...
... ou ...
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
...
etc.
htth
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow