2015-04-21 183 views
5

在表A中說,我們有應用程序的名稱和位置使用這些應用程序。如何在表中找到最大值

我正在尋找應用程序使用最多的位置。如果有關係,則應返回兩個地點。

表內容:

Application Location 
A   xy 
A   xy 
A   ab 
B   xy 
B   ab 
B   ab 

預期輸出:

Application Max(Loc) 
A    xy 
B    ab 
+0

如果有領帶怎麼辦? – Lamak

+0

返回的地點 – Raja

回答

8

這可以通過使用聚合功能RANK來解決。使用ROW_NUMBER代替每個應用程序在綁定情況下只返回一行。

SQL Fiddle上的示例。

SELECT application, location 
FROM (
    SELECT application, location, 
     RANK() OVER (PARTITION BY application ORDER BY COUNT(*) DESC) AS rn 
    FROM t 
    GROUP BY application, location 
) x 
WHERE rn = 1; 
+0

完美並且優化。謝謝 – Raja