-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathcommands-1.cql
58 lines (47 loc) · 1.86 KB
/
commands-1.cql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
// 1. setup
CREATE
(alice:Person { name: 'Alice' }),
(bob:Person { name: 'Bob' }),
(carol:Person { name: 'Carol' }),
(dan:Person { name: 'Dan' }),
(eve:Person { name: 'Eve' }),
(francis:Person { name: 'Francis' }),
(alice)-[:BORROWED { amount: 5 }]->(bob),
(bob)-[:BORROWED { amount: 5 }]->(alice),
(bob)-[:BORROWED { amount: 5 }]->(carol),
(carol)-[:BORROWED { amount: 5 }]->(bob),
(bob)-[:BORROWED { amount: 11 }]->(carol),
(bob)-[:BORROWED { amount: 7 }]->(eve),
(dan)-[:BORROWED { amount: 4 }]->(eve),
(alice)-[:BORROWED { amount: 34 }]->(dan),
(eve)-[:BORROWED { amount: 12 }]->(alice),
(eve)-[:BORROWED { amount: 12 }]->(francis),
(dan)-[:BORROWED { amount: 7 }]->(francis);
CREATE CONSTRAINT ON (p:Person) ASSERT p.name IS UNIQUE;
// Ki kapta a legtöbb pénzt?
MATCH (person:Person) WITH person
OPTIONAL MATCH (person)<-[b:BORROWED]-()
RETURN person.name AS Name, SUM(b.amount) AS Received
ORDER BY Received DESC
LIMIT 1;
// Ki adta a legtöbb pénzt?
MATCH (person:Person) WITH person
OPTIONAL MATCH (person)-[b:BORROWED]->()
RETURN person.name AS Name, SUM(b.amount) AS Sent
ORDER BY Sent DESC
LIMIT 1;
// Kinek mennyi az egyenlege?
MATCH (person:Person) WITH person
OPTIONAL MATCH (person:Person)-[s:BORROWED]->() WITH person, SUM(s.amount) AS Sent
OPTIONAL MATCH (person)<-[r:BORROWED]-() WITH person, Sent, SUM(r.amount) AS Received
RETURN person.name AS Name, Received - Sent AS Balance, Sent, Received
ORDER BY Balance DESC;
// Kinek mennyivel tartoznak?
// Ezt mar nem tudjuk megmondani, mert ugye:
// - 2 embernek adtam 5-5 $.
// - Egy vissza is fizette, illetve egy 3. embertol kaptam 5 $;
// - Annyit latok, hogy van kifele 2x5 = 10, illetve befele 2x5 = 10 => egalban vagyok.
// - Pedig meg en is tartozom, es nekem is tartoznak.
// Kinek mennyi a tartozása?
// Ki, kinek mennyivel?
// Mennyi az összes ki nem egyenlített tartozás?