我有一个表(AreaPartners),我只想匹配每个组中的第一个“名称”记录,按“ID”排序,按“区域”分组。所以对于下表:

    Area    Name            ID
    AB      ISmith          748
    AB      AWood           750
    AB      HArcher         751
    AB      DMunslow        753
    AB      DCornelius      754
    BH      MLee            301
    BH      NMcClean        307
    BH      DMiles          309
    BH      LPayze          325
    BH      MPinnock        329

我想返回 AB 的结果 ISmith 和 BH 的 MLee。

我该怎么做?我相信这与 Group By 功能有关,但我一生都无法让它发挥作用。

最佳答案

试试这个:

SELECT yourTable.Area, yourTable.Name
FROM yourTable INNER JOIN (
  SELECT MIN(Id) AS MinId
  FROM yourTable
  GROUP BY Area) M ON yourTable.Id = M.MinId

关于sql - 每个匹配项仅显示第一行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9003058/

10-09 16:12