편집 기록

편집 기록
  • 프로필 nowp님의 편집
    날짜2020.07.28

    mysql 한개의 칼럼 기준으로 그룹짓고 갯수를 얻은 후 다른 테이블과 join하고 싶습니다.


    A테이블에서 ID를 기준으로 GROUP지었습니다.

    
    SELECT TOP 200 A.ID,COUNT(A.ID) AS CNT
    
      FROM A  A
      LEFT join ANAME as Aname on A.ID = Aname.ID
      LEFT join BNAME as Bname on Aname.SEQ = Bname.SEQ
      where A.POI_ID > 1
    

    이렇게 해서 A테이블 상위 200개에 대하여 A.ID와 각 ID의 갯수를 CNT로 구했는데요.

    이제 이 A.ID 를 기준으로 Aname,Bname 테이블과 조인을 하고 싶습니다.

    A.ID, A.CNT, Aname.NAME, Bname.가입날짜 이렇게 네개가 나왔으면 좋겠는데,

    SELECT FROM (SELECT ~) 로 구하니까 A.ID가 중복되는것들이 나오더라고요.

    A테이블
    --------------------
    ID|지역
    
    1|서울
    
    2|인천
    
    3|경기
    
    1|SEOUL
    
    2|INCHEON
    
    Aname테이블
    ---------------------
    ID|name
    
    1|대한
    
    2|민국
    
    3|파리
    
    4|북한
    
    Bname테이블
    ---------------------
    ID|가입날짜
    
    1|200101
    
    2|990101
    
    3|901007
    
    원하는 값
    -----------
    ID|CNT|NAME|가입날짜
    
    1|2|대한|200101
    
    2|2|민국|990101
    
    3|1|북한|901007
    

    A.ID기준으로 중복되는 갯수를 구하고, 중복되지않는 ID만 뽑아서 JOIN 해야 합니다. 도와주세요~~

  • 프로필 알 수 없는 사용자님의 편집
    날짜2020.07.28

    mysql 한개의 칼럼 기준으로 그룹짓고 갯수를 얻은 후 다른 테이블과 join하고 싶습니다.


    A테이블에서 ID를 기준으로 GROUP지었습니다.

    
    SELECT TOP 200 A.ID,COUNT(A.ID) AS CNT
    
      FROM A  A
      LEFT join ANAME as Aname on A.ID = Aname.ID
      LEFT join BNAME as Bname on Aname.SEQ = Bname.SEQ
      where A.POI_ID > 1
    

    이렇게 해서 A테이블 상위 200개에 대하여 A.ID와 각 ID의 갯수를 CNT로 구했는데요.

    이제 이 A.ID 를 기준으로 Aname,Bname 테이블과 조인을 하고 싶습니다.

    A.ID, A.CNT, Aname.NAME, Bname.가입날짜 이렇게 네개가 나왔으면 좋겠는데,

    SELECT FROM (SELECT ~) 로 구하니까 A.ID가 중복되는것들이 나오더라고요.

    A테이블

    ID|지역

    1|서울

    2|인천

    3|경기

    1|SEOUL

    2|INCHEON

    Aname테이블

    ID|name

    1|대한

    2|민국

    3|파리

    4|북한

    Bname테이블

    ID|가입날짜

    1|200101

    2|990101

    3|901007

    원하는 값

    ID|CNT|NAME|가입날짜

    1|2|대한|200101

    2|2|민국|990101

    3|1|북한|901007

    A.ID기준으로 중복되는 갯수를 구하고, 중복되지않는 ID만 뽑아서 JOIN 해야 합니다. 도와주세요~~