如何在表中查找最大值

Raj*_*aja 5 sql sql-server sql-server-2012

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

我正在寻找最常用的应用程序的位置.如果是关系,则应返回两个位置.

表内容:

Application Location
A            xy
A            xy
A            ab
B            xy
B            ab
B            ab
Run Code Online (Sandbox Code Playgroud)

预期产量:

Application   Max(Loc)
A             xy
B             ab
Run Code Online (Sandbox Code Playgroud)

Pet*_*ang 8

这可以使用聚合函数来解决RANK.使用ROW_NUMBER,而不是返回每个应用程序只有一个行中关系的情况.

关于SQL小提琴的例子.

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;
Run Code Online (Sandbox Code Playgroud)