Я искал это и мне не повезло. У меня есть настройка базы данных графа в OrientDb (3.0.2), и у меня возникают некоторые проблемы с подзапросами. Я мог бы легко написать это в классической реляционной базе данных. Я играл с LET и $ parent / $ children, но эти концепции все еще немного сбивают с толку.
Три вершины: Сущность <- Инспекция -> Нарушения
Я бы хотел, чтобы последняя Инспекция (дата) для каждой организации и была известна, сколько нарушений было связано с этой Инспекцией.
Я знаю, как вытащить количество нарушений для каждой проверки (размер () ребер). Я также знаю, как установить максимальную дату проверки для каждого объекта, но объединение этих двух было проблемой. Какие-нибудь мысли? Спасибо!
Обновление: Я думаю, что приближаюсь, но все еще не уверен, как сделать "внутреннее" соединение. Не уверен, что я полностью понимаю, как работают переменные $ parent / $ current. Этот запрос не работает
SELECT
entityId
,$a.num_violations
,max(Date) as mDate
FROM (
SELECT
@rid AS entityId
,in('COMPLETED_AT').Date as Date
FROM Entity
unwind Date
)
let $a = (
SELECT
Date
,out('FOUND_DURING').size() as num_violations
FROM Inspection
WHERE $parent.mDate = Date
AND $parent.entityId in out('COMPLETED_AT').@rid
)
GROUP BY entityId
,$a.num_violations