SQL Server +错误的TOP 1输出

k80*_*0sg 4 sql sql-server

我有一部分查询如下所示,其中TOP 1应该在2条记录中共享,因为有2个网点具有相同的访问次数.显然,查询只返回一条记录.在这种情况下,如何显示"准确"输出?

Select TOP 1 (O.Name) as MostVisited
         From [Trans] T 
             INNER JOIN [Outlet] O
             On (T.Outlet_Code = O.Code)

      Where [VoidBy] IS NULL AND [VoidOn] IS NULL AND CardNo In     
            (Select [CardNo] From [Card] Where [CardNo] = 'CARDX' AND [MemberID] = @MemberId)
      Group by O.Name     
      Order by Count(T.Outlet_Code) Desc   
Run Code Online (Sandbox Code Playgroud)

gbn*_*gbn 10

Select TOP (1) WITH TIES (O.Name) as MostVisited
       ....
Run Code Online (Sandbox Code Playgroud)

WITH TIES提供"联合顶级"情况.

例:

DECLARE @t TABLE (foo int, qty int);
INSERt @t VALUES (1, 100), (3, 200), (2, 200);

-- one row, arbitrary
SELECT TOP (1) * FROM @t ORDER BY qty DESC;

-- both rows with "TOP 1 value"
SELECT TOP (1) WITH TIES * FROM @t ORDER BY qty DESC;
Run Code Online (Sandbox Code Playgroud)