SQL для OrientDB - как объединять элементы по идентификатору и суммировать атрибуты - PullRequest
0 голосов
/ 06 ноября 2018

Я использую SQL с Orient DB версии 2.2. Я хочу объединить элементы класса, когда они имеют одинаковый идентификатор, и добавить атрибут одного элемента к атрибуту другого. Этот атрибут имеет тип "embeddedset".

Давайте предположим, что у меня есть 3 элемента одного класса, как этот

+-------+------------+--------------+
| Elem  |     ID     | setAttribute |
+-------+------------+--------------+
|   1   |    id1     |    name1     |
|   2   |    id2     |    name1     |
|   3   |    id1     |    name2     |
+-------+------------+--------------+

Я хочу закончить с этим:

+-------+------------+--------------+
| Elem  |     ID     | setAttribute |
+-------+------------+--------------+
|   1   |    id1     | name1, name2 |
|   2   |    id2     |    name1     |
+-------+------------+--------------+

Я попытался найти все совпадения:

SELECT FROM (MATCH {class:elementClass,as:element1}, {class:elementClass, as:element2} RETURN element1, element2) WHERE (element1.id == element2.id AND element1.@rid <> element2.@rid)

Однако, к сожалению, я не знаю, как продолжить? Большое спасибо!

1 Ответ

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

Вы можете попробовать как ниже

select Elem, ID, $a.setAttribute from
(select  from t )
let $a=(select  from t where ID=$parent.current.ID)
group by ID
...