每个组仅选择前2条记录

时间:2018-07-25 20:26:44

标签: mysql sql

以下是特定成员ID的当前结果。

   MemberID    ResNumber    pcode   MemberEmail    arrivaldate
    601315522   33350554    CAAUBU  rjj@gmail.com   7/11/2018
    601315522   33350566    CAAUBU  rjj@gmail.com   7/11/2018
    601315522   33350574    CAAUBU  rjj@gmail.com   7/11/2018
    601315522   33354848    CAAUBU  rjj@gmail.com   7/11/2018
    601315522   33355136    CAAUBU  rjj@gmail.com   7/11/2018
    601315522   33356364    CAAUBU  rjj@gmail.com   7/11/2018

我希望能够为每个MemberId选择前2条记录,一些MemberId将具有10条记录,有些可能具有100条记录,但我只希望前2条记录并拒绝其他2条记录。 这就是我期望的输出:

 MemberID      ResNumber    pcode   MemberEmail    arrivaldate
 601315522     33350554    CAAUBU   rjj@gmail.com   7/11/2018
 601315522     33350566    CAAUBU   rjj@gmail.com   7/11/2018

1 个答案:

答案 0 :(得分:0)

这是处理行号的方法

SELECT MemberID, ResNumber, pcode, MemberEmail, arrivaldate,
FROM (
 SELECT MemberID, ResNumber, pcode, MemberEmail, arrivaldate,
    ROW_NUMBER () OVER w AS RN
  FROM sometable
  WINDOW w AS (PARTITION BY MemberID ORDER BY ResNumber ASC)
) X
WHERE RN <= 2