Есть ли в Cypher или APOC функция, эквивалентная SQL PIVOT? - PullRequest
0 голосов
/ 15 ноября 2018

Я хотел бы спросить, возможно ли использовать PIVOT (SQL) данные (предположим, такие же, как «транспонировать» в Excel)?Спасибо

1 Ответ

0 голосов
/ 15 ноября 2018

Cypher строго не поддерживает операцию PIVOT, хотя операция WITH может сделать точно такой же эффект, используя карту.

Единственная причина, по которой я могу придумать создание (псевдо) динамической карты для сводной области, - это использовать fromPairs из APOC.

Вот пример того, что я имею в виду, с указанием пола, чтобы показать, что он должен функционировать точно так же, как PIVOT

MATCH (s:Student)
WITH s.city as city, AVG(s.score) as score, s.gender as gender
WITH gender, COLLECT([city, score]) as key_value_pair_list
// Create city_name:score map for pivot
WITH gender, apoc.map.fromPairs(key_value_pair_list) YIELD value
// Convert map values to column by key
RETURN gender, value['New York'] as 'New York', value['Huston'] as 'Huston'
...