Выберите только первые 2 записи для каждой группы

0

Мой текущий результат приведен ниже для определенного члена.

   MemberID    ResNumber    pcode   MemberEmail    arrivaldate
    601315522   33350554    CAAUBU  [email protected]   7/11/2018
    601315522   33350566    CAAUBU  [email protected]   7/11/2018
    601315522   33350574    CAAUBU  [email protected]   7/11/2018
    601315522   33354848    CAAUBU  [email protected]   7/11/2018
    601315522   33355136    CAAUBU  [email protected]   7/11/2018
    601315522   33356364    CAAUBU  [email protected]   7/11/2018

Я хочу иметь возможность выбирать первые 2 записи для каждого члена, некоторые члены имеют 10 записей, а некоторые могут иметь 100, но мне просто нужны первые 2 записи и отклонять другие. То, что я ожидаю:

 MemberID      ResNumber    pcode   MemberEmail    arrivaldate
 601315522     33350554    CAAUBU   [email protected]   7/11/2018
 601315522     33350566    CAAUBU   [email protected]   7/11/2018
  • 2
    какая у вас версия mysql? более новая версия вы можете использовать row_number() старая версия вам нужно использовать пользовательские переменные
  • 1
    Как вы определяете первые два? Что вы заказываете?
Показать ещё 2 комментария
Теги:

1 ответ

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
  • 0
    Это говорит неправильный синтаксис рядом с 'W'.
  • 0
    @ Санки, ты пометил это как правильный, ты понял, какая у меня была опечатка?
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню