[英]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.