【问题标题】:Neo4J Subquery over same property to calculate ratioNeo4J子查询相同的属性来计算比率
【发布时间】:2021-01-02 16:15:22
【问题描述】:

我正在处理推文图表。我正在尝试获取西班牙语推文和英语推文之间的比率。

按语言检查推文数量时:

MATCH (twtEs:Tweet)<-[:HAS_WRITEN]-()-[:HAS_AS_PROFILE_LANGUAGE]->(l:Language)
RETURN DISTINCT l.languageCode, count(*)
\\ Result:
╒════════════════╤══════════╕
│"l.languageCode"│"count(*)"│
╞════════════════╪══════════╡
│"en"            │165392    │
├────────────────┼──────────┤
│"es"            │73693     │
└────────────────┴──────────┘

我们可以看到每种语言的计数。

但是当尝试直接计算比率时:

MATCH (twtEs:Tweet)<-[:HAS_WRITEN]-()-[:HAS_AS_PROFILE_LANGUAGE]->(:Language{languageCode:'es'})
WITH count(twtEs) AS tweetsEs 
MATCH (twtEn:Tweet)<-[:HAS_WRITEN]-()-[:HAS_AS_PROFILE_LANGUAGE]->(:Language{languageCode:'en'})
WITH count(twtEn) as tweetsEn, tweetsEs
RETURN tweetsEs/tweetsEn as RatioTweetsEsvsEn;
\\ Result:
╒═══════════════════╕
│"RatioTweetsEsvsEn"│
╞═══════════════════╡
│0                  │
└───────────────────┘

这就是我得到的,它应该是 0,44557。 我一直在检查 Stackoverflow 中的文档和其他答案,但没有找到类似的示例。可能第二个查询不正确,但我正在努力解决它。

提前致谢。

我在跑步:

  • Neo4j 浏览器版本:3.2.20
  • Neo4j 服务器版本:3.5.8(社区)

【问题讨论】:

    标签: neo4j cypher


    【解决方案1】:

    这是因为计数值是整数。

    例如:

    WITH 165392 AS v1, 73693 AS v2
    RETURN v1/v2
    
    ╒═══════╕
    │"v1/v2"│
    ╞═══════╡
    │2      │
    └───────┘
    

    您可以将它们转换为浮点数:

    WITH 165392 AS v1, 73693 AS v2
    RETURN v1*1.0f/v2*1.0f
    
    ╒══════════════════╕
    │"v1*1.0f/v2*1.0f" │
    ╞══════════════════╡
    │2.2443379968246644│
    └──────────────────┘
    

    哪个会给你:

    MATCH (twtEs:Tweet)<-[:HAS_WRITEN]-()-[:HAS_AS_PROFILE_LANGUAGE]->(:Language{languageCode:'es'})
    WITH count(twtEs) AS tweetsEs 
    MATCH (twtEn:Tweet)<-[:HAS_WRITEN]-()-[:HAS_AS_PROFILE_LANGUAGE]->(:Language{languageCode:'en'})
    WITH count(twtEn) as tweetsEn, tweetsEs
    RETURN tweetsEs*1.0f/tweetsEn*1.0f as RatioTweetsEsvsEn;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-15
      • 1970-01-01
      • 2014-09-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多