![]() | |
![]() |
| | Thread Tools | Display Modes |
#1
| |||
| |||
|
#2
| |||
| |||
|
#3
| |||
| |||
|
#4
| |||
| |||
|
|
"Ethan Hunt here from IMF"... DECLARE @Sample TABLE ( OrderID INT, SKU CHAR(3) ) INSERT @Sample SELECT 1, 'ABC' UNION ALL SELECT 1, 'DEF' UNION ALL SELECT 1, '123' UNION ALL SELECT 1, '321' UNION ALL SELECT 2, '789' UNION ALL SELECT 2, 'ABC' UNION ALL SELECT 3, 'DEF' UNION ALL SELECT 3, '123' UNION ALL SELECT 3, '321' UNION ALL SELECT 4, 'YUJ' UNION ALL SELECT 4, 'JYH' UNION ALL SELECT 4, 'SXC' UNION ALL SELECT 5, 'ABC' UNION ALL SELECT 5, '789' SELECT OrderID FROM ( SELECT s1.OrderID, MIN(s1.Items) AS Items, SUM(CASE WHEN s1.OrderID = s2.OrderID THEN 0 ELSE 1 END) AS Hits, CASE WHEN MIN(s1.Items) < MIN(s2.Items) THEN MIN(s2.Items) ELSE MIN(s1.Items) END AS Cases FROM ( SELECT OrderID, COUNT(*) OVER (PARTITION BY OrderID) AS Items, SKU FROM @Sample ) AS s1 INNER JOIN ( SELECT OrderID, COUNT(*) OVER (PARTITION BY OrderID) AS Items, SKU FROM @Sample ) AS s2 ON s2.SKU = s1.SKU GROUP BY s1.OrderID, s2.OrderID ) AS d GROUP BY OrderID ORDER BY MAX(1.0 * Hits / Cases) DESC |
#5
| |||
| |||
|
#6
| |||
| |||
|
![]() |
| Thread Tools | |
| Display Modes | |
| |