SQL 服务器:从输出的特定列中过滤掉重复值

SQL Server: Filter out duplicate value from a specific column of the output

我正在使用 SQL Server 2014,我有以下针对视图运行的查询 Table:

USE MyDatabase
SELECT a.ResaId, a.MTH, a.Market, SUM(a.Guest) AS 'Pax'
FROM RESLIST a
GROUP BY a.ResaId, a.MTH, a.Market

输出(摘录)如下:

ResaId      MTH     Market    Pax
  252     Jan-15    France     3
  346     FEB-15    UK         2
  346     MAR-15    UK         2
  112     MAR-15    GERMANY    4
  587     JUL-15    Italy      3
  587     AUG-15    Italy      3

我需要在输出中排除这两个重复的 ResaID:346 和 587。因此,输出需要如下所示:

ResaId      MTH     Market    Pax
  252     Jan-15    France     3
  346     FEB-15    UK         2
  112     MAR-15    GERMANY    4
  587     JUL-15    Italy      3

SELECT DISTINCT 语法无效。我猜是因为整个ROWS中的值不重复。

我只需要删除具有重复 ResaID 的第二行。

如何将相关语法写入现有查询以实现此目的?

你可以像

一样使用ROW_NUMBER()函数
SELECT 
    ResaId,
    MTH,
    Market,
    Pax
FROM 
    (SELECT 
         a.ResaId, a.MTH, a.Market, SUM(a.Guest) AS 'Pax',
         ROW_NUMBER() OVER(PARTITION BY a.ResaId ORDER BY a.ResaId) AS rn
     FROM 
         RESLIST a
     GROUP BY 
         a.ResaId, a.MTH, a.Market) xx
WHERE 
    rn = 1;