I have a currently small database with the following relevant part:
(:Address)
/
(:User)
\
(:UsedMeasure) // multiple of these!!!
The relevant properties here are: User.createdAt (DateTime), Address.addressCityCode (String), UsedMeasure.reductionAvg (Number).
Now I want to list the User
with Date (createdAt), its city code and the sum of the reductionAvg
(divided by 2, but that does not matter) of all their UsedMeasures
.
But when I use a query like this:
MATCH (u:User {isBetUser: true})-->(m:UsedMeasure) WITH u, m, u.createdAt.epochMillis AS date MATCH (u)-->(a:Address) RETURN ROUND((SUM(m.reductionAvg) / 2), 1) AS sum, a.addressCityCode AS PLZ, SUM(m.reductionAvg), apoc.date.format(date, 'ms', 'dd.MM.yyyy') as Datum;
the result is grouped by the Datum
, which makes sense due to:
Grouping keys are non-aggregate expressions, that are used to group the values going into the aggregate functions.
How can I get exactly one row per user without adding ID(user)
to the RETURN
list? (I don't want to get the id here, the data will be sent away in a CSV file.) Is there any way to add a different grouping key to the (ROUND(SUM(m.reductionAvg) / 2), 1)
part of the query without returning it?