1

我正在尝试进行以下操作的密码查询

  1. 查找美国最大的 10 家组织(按收入计算)
  2. 如果组织在前 10 名中,则返回“True”,如果不是,则返回“False”

我试图提取前 10 名组织列表的代码如下所示:

MATCH (org)
WHERE org.revenueCurrency = 'USD'
WITH org as topCompany
ORDER by topCompany.revenue desc LIMIT 10
RETURN topCompany

但是如果一家公司进入前 10 名,不确定如何返回 True 或 False

4

1 回答 1

1

这是一种方式:

MATCH (org)
WHERE org.revenueCurrency = 'USD'
WITH org
ORDER by org.revenue DESC
WITH COLLECT(org) AS orgs
UNWIND [i IN RANGE(0, SIZE(orgs)-1) | {org: orgs[i], top10: i < 10}] AS result
RETURN result

top10每行的属性result将是一个布尔值。

[更新]

如果您希望每个结果行是“平面”而不是映射,请使用此更改的RETURN子句:

RETURN result.org AS org, result.top10 AS top10
于 2020-06-11T22:33:44.300 回答