在表A中说,我们有应用程序名称和使用这些应用程序的位置。
我希望找到最常使用应用程序的位置。如果是关系,则应返回两个位置。
表格内容:
Application Location
A xy
A xy
A ab
B xy
B ab
B ab
预期产出:
Application Max(Loc)
A xy
B ab
答案 0 :(得分: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;