Neo4j Cypher ToInt功能无法正常工作

时间:2015-04-21 11:22:21

标签: neo4j cypher

我正在使用Neo4j v 2.3.0。此 cypher 查询为LOS返回零。 DaysOfCare是一个字符串。

MATCH x-[rr]-(a:Discharge)-[r]-(b:Dx)
WHERE b.ICD9='25000'
RETURN
  x.ICD9,
  x.DIAG_DESC,
  type(r),
  count(x.DIAG_DESC) as Ct,    
  sum(TOINT(x.DaysOfCare)) as LOS
ORDER BY Ct DESC LIMIT 250  

这里有什么问题?

是否尚未按计划添加ToInt?这是一个错误,还是我错误地使用SumToInt的组合?

2 个答案:

答案 0 :(得分:1)

TOINT功能已成为Cypher的一部分。如果您尝试更改此行,该怎么办:

sum(TOINT(x.DaysOfCare)) as LOS

对此:

collect(x.DaysOfCare) as LOS

这可能会让你了解它为什么不起作用。

答案 1 :(得分:0)

原始问题中的查询并未汇总正确的数据。此查询产生预期结果:

MATCH x-[rr]-(a:Discharge)-[r]-(b:Dx) where b.ICD9='25000'  RETURN x.ICD9,x.DIAG_DESC,type(r),count(x.DIAG_DESC) as Ct,sum(ToInt(a.DaysOfCare)) as LOS order by Ct desc LIMIT 250

a-node集是医院出院,其中包含元数据,包括护理日。该查询寻求目标诊断(25000 =糖尿病),然后在x节点中寻求其他放电诊断。相关的诊断不是随机的;某些条件是聚集的。前几行输出是:

enter image description here

显然,ToInt工作正常......这是用户搞砸了。