私は、顧客が共通して購入する上位Nペアの製品を返品するという問題に直面しました。次のクエリがあるとしましょう:
SELECT c.CustomerKey, ProductAlternateKey
FROM
[AdventureWorksDW2008R2].[dbo].[FactInternetSales] FIS JOIN
dbo.DimCustomer C ON C.CustomerKey = FIS.CustomerKey JOIN
dbo.DimProduct P ON P.ProductKey = FIS.ProductKey
GROUP BY
C.CustomerKey, P.ProductAlternateKey
そして、次の結果を返します。
CustomerKey | ProductAlternateKey|
-------------+-----------+
0001 | A |
0001 | B |
0002 | A |
0002 | B |
0002 | C |
0003 | B |
0003 | C |
0004 | A |
0004 | B |
0005 | A |
0005 | C |
このクエリから、顧客が購入する製品の上位2ペアを見つけたいので、私の例では->(A、B)3回の出現と(B、C)->2回の出現