如何在表中查找最大值

时间:2015-04-21 14:15:03

标签: sql sql-server sql-server-2012

在表A中说,我们有应用程序名称和使用这些应用程序的位置。

我希望找到最常使用应用程序的位置。如果是关系,则应返回两个位置。

表格内容:

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

预期产出:

Application   Max(Loc)
A             xy
B             ab

1 个答案:

答案 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;