次の方法で共有


node_degree_in() (グラフ関数)

適用対象: ✅Microsoft FabricAzure データ エクスプローラー

node_degree_in関数は、有向グラフ内のノードに対する受信エッジの次数 (数) を計算します。

この関数は、 graph-match 演算子と graph-shortest-paths 演算子で使用されます。

構文

node_degree_in([ ノード])

構文規則について詳しく知る。

パラメーター

名前 タイプ 必須 説明
ノード string グラフ パターン内のグラフ ノード変数への参照。
all()、any()、map() グラフ関数内で inner_nodes() を使用する場合は、パラメーターを渡さないでください。

返品ポリシー

inner_nodes()all()any()、map() 関数内で使用する場合、入力ノードまたはすべての内部ノードの次数を返します。

次の例では、従業員とそのマネージャーの階層構造を分析するグラフを作成します。

グラフ一致演算子は、直属の部下が 3 つ (node_degree_in(manager) == 3) を持ち、内部ノード (従業員) に少なくとも 1 つのレポート (node_degree_in() > 1) があるマネージャーを探します。

このクエリでは、マネージャー、各直属のレポートの名前、マネージャーの学位、および各従業員の直属部下の数が返されます。

let employees = datatable(name:string, age:long)
[
"Alice", 32,
"Bob", 31,
"Eve", 27,
"Joe", 29,
"Chris", 45,
"Alex", 35,
"Ben", 23,
"Richard", 39,
];
let reports = datatable(employee:string, manager:string)
[
"Bob", "Alice",
"Chris", "Alice",
"Eve", "Bob",
"Ben", "Chris",
"Joe", "Alice",
"Richard", "Bob"
];
reports
| make-graph employee --> manager with employees on name
| graph-match (manager)<-[reports*1..3]-(employee)
    where node_degree_in(manager) == 3 and any(inner_nodes(reports), node_degree_in() > 1)
    project manager.name, employee.name, 
            reports_and_inner_nodes_degree_in = map(inner_nodes(reports), strcat(name, " has ", node_degree_in(), " reports")),
            degree_in_m=node_degree_in(manager), 
            degree_out_e=node_degree_out(employee) 

出力

manager_name employee_name reports_and_inner_nodes_degree_in degree_in_m degree_out_e
アリス リチャード ["Bob has 2 reports"] 3 1
アリス 前夜祭 ["Bob has 2 reports"] 3 1
アリス エレン [
"Bob has 2 reports",
"Eve has 1 reports"
]
3 1