簡體   English   中英

Neo4j Cypher查詢中的條件和

[英]Conditional sum in Neo4j Cypher query

我有一個Neo4j數據庫,其中包含銀行帳戶及其傳入的轉帳。 每次轉移都會在某個小時發生。 有24個hourNodes代表每個不同的小時(1,2,...,24)。 我需要知道每小時轉移到每個帳戶的總金額,是這樣的(是的,我確實需要在結果表中顯示25列!):

accountName     totalH1   totalH2   ...   totalH24
My Account #1   19        50        ...   34
My Account #2   5         14        ...   99
...

這個簡單的查詢:

MATCH (account)->(transfer)->(hourNode)
RETURN
  account.name,
  hourNode.hour,
  sum(transfer.amount)

以不同的格式給出結果:

accountName     hour   total
My Account #1   1      19
My Account #1   2      50
...
My Account #1   24     34
My Account #2   1      5
...

我無法更改數據庫結構。 如何編寫查詢以描述的格式返回數據?

不知道如何精確創建您描述的輸出的方法,但是我們可以很容易地做到這一點。

您基本上想要的是每個名稱一行和一個有序的總和列表。 您可以使用關注訂購的WITH和建立列表的collect來實現:

MATCH (account)->(transfer)->(hourNode)
WITH
  account.name as name,
  hourNode.hour as hour,
  sum(transfer.amount) as sum
ORDER BY name, hour
RETURN name, collect(hour) as hours, collect(sum) as sums

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM