Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Neo4j 计算Cypher聚合中符合特定条件的记录的比例_Neo4j_Cypher - Fatal编程技术网

Neo4j 计算Cypher聚合中符合特定条件的记录的比例

Neo4j 计算Cypher聚合中符合特定条件的记录的比例,neo4j,cypher,Neo4j,Cypher,假设我有一个图形,我这样查询: MATCH (n:Class)-[:HAS]->(i:Item) RETURN n.id as Id1, i.id as IdI, i.isWhatever as Criterion 得到 IdC IdI Criterion A 1 False A 2 True B 1 True 我期望的输出是 IdC r

假设我有一个图形,我这样查询:

MATCH (n:Class)-[:HAS]->(i:Item)
RETURN n.id as Id1, i.id as IdI, i.isWhatever as Criterion
得到

IdC   IdI  Criterion                                   
  A     1      False
  A     2       True
  B     1       True
我期望的输出是

IdC   ratioCriterion                                   
  A              0.5
  B                1
我想这个问题可以归结为如何用密码对布尔值列表求和。除以聚合大小的部分很容易。我的意思是,完整的查询如下所示:

MATCH (n:Class)-[:HAS]->(i:Item)
WITH n.id as Id1, count_number_of_True_values / count(*) as ratioCriterion

但我只是不知道如何编写真实值的
count\u number\u
位。

您搜索的是以下查询:

MATCH (n:Class)-[:HAS]->(i:Item)
WITH n.id as Id1, i.id as IdI, i.isWhatever as Criterion
WITH Id1, CASE WHEN Criterion  THEN 1 ELSE 0 END AS numCrit
WITH Id1, collect(numCrit) AS crits
RETURN Id1, reduce(s = 0, x IN crits | s + x)/toFloat(size(crits))
我用做了很多
,向您展示了不同的步骤


干杯

非常感谢。我想为了可读性,我只需删除第二行,然后像这样编写第二行:
,其中n.id为Id1,CASE为I.iswhaten,那么1,否则0以numCrit结尾。