Heim >Datenbank >MySQL-Tutorial >Wie können rekursive SQL-Abfragen Produktübereinstimmungen basierend auf der minimalen Produkt-ID gruppieren?

Wie können rekursive SQL-Abfragen Produktübereinstimmungen basierend auf der minimalen Produkt-ID gruppieren?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2025-01-05 14:33:45202Durchsuche

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

Rekursive Abfrage in SQL Server

Ein Datenanalyst hat Schwierigkeiten, eine Tabelle mit Produktübereinstimmungen in eine gewünschte Gruppierungstabelle umzuwandeln. Ziel ist es, eine neue Tabelle mit dem Namen „Gruppen“ abzuleiten, in der jede Gruppe durch die minimale Produkt-ID ihrer konstituierenden Produkte dargestellt wird.

Um dies zu erreichen, können wir die rekursiven Fähigkeiten von SQL nutzen. Hier ist eine Lösung unter Verwendung eines allgemeinen Tabellenausdrucks (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

Der CTE definiert eine rekursive Abfrage, die mit Zeilen beginnt, die keine passenden Produkte haben. Anschließend werden weitere passende Produkte identifiziert und anhand der Mindestprodukt-ID gruppiert. Die Rekursionstiefe kann mithilfe der OPTION(MAXRECURSION)-Klausel gesteuert werden.

Diese Lösung fasst Produktübereinstimmungen effektiv in Gruppen gemäß den angegebenen Kriterien zusammen.

Das obige ist der detaillierte Inhalt vonWie können rekursive SQL-Abfragen Produktübereinstimmungen basierend auf der minimalen Produkt-ID gruppieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn