SQL Server で製品グループを確立するための再帰クエリ
データ分析における一般的なタスクは、関連するエンティティを識別してグループ化することです。この特定のシナリオの目標は、製品一致のテーブルを処理し、それらを別のテーブルに保存することであり、各行は製品グループを表します。製品グループは、製品間の「一致」関係によって決定されます。
これを実現するには、SQL Server の Common Table Expression (CTE) を使用した再帰クエリを使用できます。再帰クエリを使用すると、クエリが独自の出力を参照できるようになり、複雑な結合やツリー状の構造の実装が可能になります。
「CTE」という名前の CTE は、最初に、一致する製品がない各製品の最小製品 ID。次に、一致テーブルと再帰的に結合して、各グループ内の残りの製品を識別します。
最後のクエリは、CTE からデータを取得し、結果をグループ ID で並べ替えます。 OPTION(MAXRECURSION n) 句を指定すると、許可される再帰の最大の深さを制御して、クエリが無限ループに入らないようにすることができます。
再帰クエリの SQL コードは次のとおりです。
;WITH CTE AS ( SELECT DISTINCT M1.Product_ID Group_ID, M1.Product_ID FROM matches M1 LEFT JOIN matches M2 ON M1.Product_Id = M2.matching_Product_Id WHERE M2.matching_Product_Id IS NULL UNION ALL SELECT C.Group_ID, M.matching_Product_Id FROM CTE C JOIN matches M ON C.Product_ID = M.Product_ID ) SELECT * FROM CTE ORDER BY Group_ID;
この再帰クエリを使用すると、一致関係に基づいて製品を効果的にグループ化し、結果を別のテーブルに保存して、さらに後で使用することができます。分析。
以上が再帰 SQL クエリはどのようにして、一致する関係に基づいて製品を効率的にグループ化できるのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。