AGEは、Cypherで直接記述されるSQLをサポートしていません。 ただし、ユーザー定義関数を使用すると、SQLクエリを作成してcipherコマンドで呼び出すことができます。
関数の作成
CREATE OR REPLACE FUNCTION public.get_event_year(name agtype) RETURNS agtype AS $$
SELECT year::agtype
FROM history AS h
WHERE h.event_name = name::text
LIMIT 1;
$$ LANGUAGE sql;クエリ:
SELECT * FROM cypher('graph_name', $$
MATCH (e:event)
WHERE e.year < public.get_event_year(e.name)
RETURN e.name
$$) as (n agtype);サンプル結果:
n
-------------------
"Apache Con 2021"
(1 row)