首頁 > 資料庫 > mysql教程 > 遞歸 SQL 查詢如何根據最小產品 ID 對產品比對進行分組?

遞歸 SQL 查詢如何根據最小產品 ID 對產品比對進行分組?

Mary-Kate Olsen
發布: 2025-01-05 14:33:45
原創
202 人瀏覽過

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板