Mysql 각 그룹에 대한 최근 2 개의 레코드 선택 [사용자]

주황색

두 개의 테이블 userslogin_track이 있습니다. 각 사용자는 login_track 테이블에 로그인 레코드가있을 수도 있고 없을 수도 있습니다. 각 사용자에 대해 최근 2 개의 로그인 날짜를 검색하고 싶습니다.

테이블 구조는 다음과 같습니다. 사용자 :

  user_id  name
     1     John
     2     Mike
     3     Anderson
     4     William
    .....

Login_track 테이블 :

  track_id   user_id   login_date
   100           1    2017-06-20
   101           1    2017-06-21
   102           2    2017-06-21
   103           1    2017-06-23
   104           2    2017-06-23
   105           1    2017-06-27

따라서 원하는 결과는 다음같아야합니다 .

  user_id  Name          login_date
    1      John          2017-06-27, 2017-06-23
    2      Mike          2017-06-23, 2017-06-21
    3      Anderson      NULL
    4      William       NULL

참고 : 사용자 ID 3 (Anderson) 및 4 (William)는 login_track 테이블에 레코드가 없습니다.이 두 가지는 최종 결과에도 login_date 열에 NULL 값으로 나열되어야합니다.

감사.

Prabhat G

MySQL에는 ROW_NUMBER () 함수가 없기 때문에 약간 까다 롭습니다. 따라서 간단한 트릭으로 다음을 시도하십시오.

Select u.user_id, u.name, GROUP_CONCAT(DISTINCT iq.login_date) login_date
FROM(
select user_id,  login_date
from 
(
   select user_id, login_date,
      (@num:=if(@group = user_id, @num +1, if(@group := user_id, 1, 1))) row_number 
  from Login_track 
  CROSS JOIN (select @num:=0, @group:=null) c
  order by user_id, login_date DESC
) as x 
where x.row_number <= 2
    )iq
right join users u on u.user_id = iq.user_id
GROUP BY u.user_id

출력 :

user_id name        login_date
------- ----        -----------
1   John        2017-06-23,2017-06-27
2   Mike        2017-06-21,2017-06-23
3   Anderson    NULL
4   William     NULL

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

그룹의 각 레코드에 대해 최근 n 개의 날짜가 기록 된 레코드 선택

분류에서Dev

그룹에있는 각 그룹의 최대 레코드 선택

분류에서Dev

사용자 정의 기준을 충족하는 각 그룹에서 레코드를 선택하는 MySQL 쿼리

분류에서Dev

mySQL-각 게시물에 대한 2 개의 최신 댓글 선택

분류에서Dev

각 그룹에서 최대 레코드를 제외한 모든 레코드 선택

분류에서Dev

MySQL은 모든 레코드를 선택하고 각 레코드 선택에 대해 하나의 쿼리에서

분류에서Dev

MySQL의 특정 조건을 기반으로 가장 최근 레코드 그룹을 선택하는 방법

분류에서Dev

ID로 그룹화하고 각각에 대해 최신 레코드 만 선택하십시오.

분류에서Dev

MySQL의 각 레코드에 대해 가장 최근 주어진 날짜 만 표시

분류에서Dev

MySQL : 각 그룹에서 처음 2 개 행을 선택하여 그룹화

분류에서Dev

최대 연도가 값과 같은 각 ID에 대한 SQL 선택 레코드

분류에서Dev

사전 파이썬의 각 키에 대한 최대 값 선택

분류에서Dev

codeigniter에서 각 사용자에 대한 최신 기록 선택

분류에서Dev

codeigniter에서 각 사용자에 대한 최신 기록 선택

분류에서Dev

MYSQL-2 개 행에서 가장 최근 시간 선택

분류에서Dev

MySQL은 다른 열의 각 고유 값에 대해 가장 최근 항목을 선택합니다.

분류에서Dev

SQl 구문을 사용하여 MySQL 테이블의 그룹에서 최신 레코드를 선택하는 방법

분류에서Dev

mysql은 각 사용자의 날짜별로 가장 최근 행을 선택합니다.

분류에서Dev

2 개의 ID 필드로 가장 최근 레코드 그룹 반환

분류에서Dev

mysql에서 최근 레코드로 그룹의 모든 ID 가져 오기

분류에서Dev

하나의 임의 열 MySQL에서 2 개의 임의 레코드 선택

분류에서Dev

각 엔터티에 대해 상위 N 개 레코드 선택

분류에서Dev

SQL을 사용하여 가장 최근의 각 그룹 만 선택하는 방법은 무엇입니까?

분류에서Dev

MS SQL에서 가장 최근 레코드를 선택하기위한 그룹화 및 정렬 결과

분류에서Dev

BigQuery를 사용하여 각 레코드 그룹에 대한 마지막 3 개 레코드의 평균 값을 얻는 방법은 무엇입니까?

분류에서Dev

2 개의 열에 최대 값이있는 테이블에서 레코드를 선택하는 LINQ 쿼리

분류에서Dev

두 열의 최대 값을 사용하여 레코드 선택

분류에서Dev

각 "그룹"에 대한 최신 문서 선택

분류에서Dev

MySQL을 사용하여 7 일 전 레코드에 대한 쿼리 선택

Related 관련 기사

  1. 1

    그룹의 각 레코드에 대해 최근 n 개의 날짜가 기록 된 레코드 선택

  2. 2

    그룹에있는 각 그룹의 최대 레코드 선택

  3. 3

    사용자 정의 기준을 충족하는 각 그룹에서 레코드를 선택하는 MySQL 쿼리

  4. 4

    mySQL-각 게시물에 대한 2 개의 최신 댓글 선택

  5. 5

    각 그룹에서 최대 레코드를 제외한 모든 레코드 선택

  6. 6

    MySQL은 모든 레코드를 선택하고 각 레코드 선택에 대해 하나의 쿼리에서

  7. 7

    MySQL의 특정 조건을 기반으로 가장 최근 레코드 그룹을 선택하는 방법

  8. 8

    ID로 그룹화하고 각각에 대해 최신 레코드 만 선택하십시오.

  9. 9

    MySQL의 각 레코드에 대해 가장 최근 주어진 날짜 만 표시

  10. 10

    MySQL : 각 그룹에서 처음 2 개 행을 선택하여 그룹화

  11. 11

    최대 연도가 값과 같은 각 ID에 대한 SQL 선택 레코드

  12. 12

    사전 파이썬의 각 키에 대한 최대 값 선택

  13. 13

    codeigniter에서 각 사용자에 대한 최신 기록 선택

  14. 14

    codeigniter에서 각 사용자에 대한 최신 기록 선택

  15. 15

    MYSQL-2 개 행에서 가장 최근 시간 선택

  16. 16

    MySQL은 다른 열의 각 고유 값에 대해 가장 최근 항목을 선택합니다.

  17. 17

    SQl 구문을 사용하여 MySQL 테이블의 그룹에서 최신 레코드를 선택하는 방법

  18. 18

    mysql은 각 사용자의 날짜별로 가장 최근 행을 선택합니다.

  19. 19

    2 개의 ID 필드로 가장 최근 레코드 그룹 반환

  20. 20

    mysql에서 최근 레코드로 그룹의 모든 ID 가져 오기

  21. 21

    하나의 임의 열 MySQL에서 2 개의 임의 레코드 선택

  22. 22

    각 엔터티에 대해 상위 N 개 레코드 선택

  23. 23

    SQL을 사용하여 가장 최근의 각 그룹 만 선택하는 방법은 무엇입니까?

  24. 24

    MS SQL에서 가장 최근 레코드를 선택하기위한 그룹화 및 정렬 결과

  25. 25

    BigQuery를 사용하여 각 레코드 그룹에 대한 마지막 3 개 레코드의 평균 값을 얻는 방법은 무엇입니까?

  26. 26

    2 개의 열에 최대 값이있는 테이블에서 레코드를 선택하는 LINQ 쿼리

  27. 27

    두 열의 최대 값을 사용하여 레코드 선택

  28. 28

    각 "그룹"에 대한 최신 문서 선택

  29. 29

    MySQL을 사용하여 7 일 전 레코드에 대한 쿼리 선택

뜨겁다태그

보관