ホームページ >データベース >mysql チュートリアル >再帰 SQL クエリでは、最小製品 ID に基づいて製品の一致をどのようにグループ化できますか?

再帰 SQL クエリでは、最小製品 ID に基づいて製品の一致をどのようにグループ化できますか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2025-01-05 14:33:45205ブラウズ

How Can Recursive SQL Queries Group Product Matches Based on Minimum Product ID?

SQL Server での再帰クエリ

データ アナリストは、製品の一致を含むテーブルを目的のグループ化テーブルに変換する際に困難に遭遇します。目的は、「groups」という名前の新しいテーブルを派生することです。各グループは、その構成製品の最小製品 ID で表されます。

これを実現するには、SQL の再帰機能を利用できます。共通テーブル式 (CTE) を使用した解決策は次のとおりです。

;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

CTE は、一致する製品がない行から始まる再帰クエリを定義します。その後、追加の一致する製品を特定し、最小の製品 ID に基づいてそれらをグループ化します。再帰の深さは、OPTION(MAXRECURSION) 句を使用して制御できます。

このソリューションは、指定された基準に従って、製品の一致を効果的にグループに集約します。

以上が再帰 SQL クエリでは、最小製品 ID に基づいて製品の一致をどのようにグループ化できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。