Heim >Datenbank >MySQL-Tutorial >Wie können rekursive SQL-Abfragen Produktübereinstimmungen basierend auf der minimalen Produkt-ID gruppieren?
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!