Here is one way:DECLARE @Customer TABLE (CustomerID INT PRIMARY KEY, CustomerName VARCHAR(50))INSERT @CustomerSELECT 1, 'Jim'UNION ALL SELECT 2, 'Tom'DECLARE @Product TABLE (ProductID INT PRIMARY KEY, ProductName VARCHAR(50))INSERT @ProductSELECT 1, 'Apple'UNION ALL SELECT 2, 'Peach'DECLARE @Order TABLE (OrderID INT, CustomerID INT, ProductID INT)INSERT @OrderSELECT 1, 2, 1UNION ALL SELECT 1, 2, 1UNION ALL SELECT 1, 2, 1UNION ALL SELECT 1, 1, 1UNION ALL SELECT 1, 1, 1UNION ALL SELECT 1, 1, 2UNION ALL SELECT 1, 1, 2UNION ALL SELECT 1, 1, 2UNION ALL SELECT 1, 2, 2SELECT ProductName, CustomerNameFROM ( SELECT ProductName, CustomerName, ROW_NUMBER() OVER (PARTITION BY P.ProductName ORDER BY COUNT(*) DESC) AS RowNum FROM @Order AS O INNER JOIN @Customer AS C ON O.CustomerID = C.CustomerID INNER JOIN @Product AS P ON O.ProductID = P.ProductID GROUP BY P.ProductName, C.CustomerName ) AS TWHERE T.RowNum = 1