%%%%% Page 6: Exercise 1 %%%%% MATCH (m:MOVIE {id: "medvidek"}) RETURN m, m.title; MATCH (m:MOVIE) WHERE m.id = "medvidek" RETURN m, m.title; %%%%% Page 7: Exercise 2 %%%%% MATCH (a:ACTOR) WHERE a.year >= 1965 RETURN a.name, a.year ORDER BY a.year DESC, a.name ASC; MATCH (a:ACTOR) WHERE a.year >= 1965 RETURN a.name, a.year ORDER BY a.year DESCENDING, a.name ASCENDING; MATCH (a:ACTOR) WHERE a.year >= 1965 RETURN a.name, a.year ORDER BY a.year DESCENDING, a.name; %%%%% Page 8: Exercise 3 %%%%% MATCH (:ACTOR {name: "Jiri Machacek"})<-[:PLAY]-(n:MOVIE) RETURN n.title; MATCH (n:MOVIE)-[:PLAY]->(:ACTOR {name: "Jiri Machacek"}) RETURN n.title; MATCH (n:MOVIE)-[:PLAY]->(a:ACTOR) WHERE a.name = "Jiri Machacek" RETURN n.title; MATCH (:ACTOR {name: "Jiri Machacek"})<--(n:MOVIE) RETURN n.title; MATCH (:ACTOR {name: "Jiri Machacek"})--(n:MOVIE) RETURN n.title; MATCH (a:ACTOR {name: "Jiri Machacek"}) MATCH (n:MOVIE)-[:PLAY]->(a) RETURN n.title; MATCH (a:ACTOR {name: "Jiri Machacek"}), (n:MOVIE)-[:PLAY]->(a) RETURN n.title; %%%%% Page 9: Exercise 4 %%%%% MATCH (m:MOVIE)-[:PLAY]->(:ACTOR) RETURN DISTINCT m; MATCH (m:MOVIE) WHERE SIZE( (m)-[:PLAY]->(:ACTOR) ) >= 1 RETURN m; MATCH (m:MOVIE) WHERE EXISTS( (m)-[:PLAY]->(:ACTOR) ) RETURN m; MATCH (m:MOVIE) WHERE (m)-[:PLAY]->(:ACTOR) RETURN m; MATCH (m:MOVIE) WITH m, SIZE( (m)-[:PLAY]->(:ACTOR) ) AS actors WHERE actors >= 1 RETURN m; MATCH (m:MOVIE)-[:PLAY]->(a:ACTOR) WITH m, COUNT(a) as actors WHERE actors >= 1 RETURN m; MATCH (m:MOVIE)-[:PLAY]->(a:ACTOR) WITH m, COUNT(a) as actors RETURN m; MATCH (m:MOVIE), (a:ACTOR) WHERE (m)-[:PLAY]->(a) RETURN DISTINCT m; %%%%% Page 10: Exercise 5 %%%%% MATCH (s:ACTOR {name: "Ivan Trojan"}) <-[:PLAY]-(m:MOVIE)-[:PLAY]-> (a:ACTOR) RETURN DISTINCT a; MATCH (s:ACTOR {name: "Ivan Trojan"})<-[:PLAY]-(m:MOVIE), (m)-[:PLAY]->(a:ACTOR) RETURN DISTINCT a; MATCH (s:ACTOR {name: "Ivan Trojan"})<-[:PLAY]-(m:MOVIE) MATCH (m)-[:PLAY]->(a:ACTOR) WHERE a <> s RETURN DISTINCT a; MATCH (s:ACTOR {name: "Ivan Trojan"})<-[:PLAY]-(m:MOVIE) MATCH (m)-[:PLAY]->(a:ACTOR) WHERE a.name <> "Ivan Trojan" RETURN DISTINCT a; MATCH (a:ACTOR) WHERE (a)<-[:PLAY]-(:MOVIE)-[:PLAY]->(:ACTOR {name: "Ivan Trojan"}) RETURN a; %%%%% Page 11: Exercise 6 %%%%% MATCH (s:ACTOR {name: "Ivan Trojan"})-[:KNOW *]-(a:ACTOR) WHERE s <> a RETURN DISTINCT a.name; MATCH (s:ACTOR {name: "Ivan Trojan"})-[:KNOW *1..]-(a:ACTOR) WHERE s <> a RETURN DISTINCT a.name; MATCH (a:ACTOR) WHERE EXISTS( (a)-[:KNOW *]-(:ACTOR {name: "Ivan Trojan"}) ) AND (a.name <> "Ivan Trojan") RETURN a.name; %%%%% Page 12: Exercise 7 %%%%% MATCH (m:MOVIE) OPTIONAL MATCH (m)-[:PLAY]->(a:ACTOR) RETURN m.title, a.name; %%%%% Page 13: Exercise 8 %%%%% MATCH (m:MOVIE) WITH m, SIZE( (m)-[:PLAY]->(:ACTOR) ) AS actors WITH AVG(actors) AS average MATCH (m:MOVIE) WHERE SIZE( (m)-[:PLAY]->(:ACTOR) ) > average MATCH (m)-[:PLAY]->(a:ACTOR) WITH DISTINCT a RETURN a.name; MATCH (m:MOVIE) OPTIONAL MATCH (m)-[:PLAY]->(a:ACTOR) WITH m, COUNT(a) AS actors WITH AVG(actors) AS average MATCH (m:MOVIE) WHERE SIZE( (m)-[:PLAY]->(:ACTOR) ) > average MATCH (m)-[:PLAY]->(a:ACTOR) WITH DISTINCT a RETURN a.name;