Maison > base de données > tutoriel mysql > Comment les requêtes SQL récursives peuvent-elles regrouper les correspondances de produits en fonction de l'ID de produit minimum ?

Comment les requêtes SQL récursives peuvent-elles regrouper les correspondances de produits en fonction de l'ID de produit minimum ?

Mary-Kate Olsen
Libérer: 2025-01-05 14:33:45
original
254 Les gens l'ont consulté

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

Requêtes récursives dans SQL Server

Un analyste de données rencontre des difficultés à transformer une table contenant des correspondances de produits en une table de regroupement souhaitée. L'objectif est de dériver une nouvelle table, nommée « groupes », dans laquelle chaque groupe est représenté par l'ID de produit minimum de ses produits constitutifs.

Pour y parvenir, nous pouvons exploiter les capacités récursives de SQL. Voici une solution utilisant une expression de table commune (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
Copier après la connexion

Le CTE définit une requête récursive commençant par des lignes qui n'ont aucun produit correspondant. Par la suite, il identifie des produits correspondants supplémentaires et les regroupe en fonction de l'ID de produit minimum. La profondeur de récursion peut être contrôlée à l'aide de la clause OPTION(MAXRECURSION).

Cette solution regroupe efficacement les correspondances de produits en groupes selon les critères spécifiés.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal