mysql 쿼리 질문

djkneg883   
   조회 1706   추천 0    

안녕하세요.

mysql 쿼리에 대해서 질문하고자 올립니다.

아래와 같이 데이터가 있을 때 code = 'A061'일 때 count(grpNo) = 1인 id만 뽑아내고 싶은데 

group by를 하면서 뽑으려 해도 도저히 모르겠네요.

id0001은 code = 'A061'일때 해당 데이터의 grpNo = 2인 count(grpNo) 가 3 이라서 뽑지 않고

id0002의 경우 grpNo = 1인 count(grpNo)가 1이라서,

결과값으로 id0002 를 뽑고 싶은데 어떻게 해야할까요? 

database에 대한 지식이 짧아서 문의글을 남깁니다. 

idtmpCodecodedcodegrpNo
id0010002A002A0020013
id0010003A003A0030014
id0014990A006A0060012
id0010035A025A0250011
id0014991A061A0610012
id0014992A062A0620012
id0024991A061A0610011
id0030037A029A0290011
짧은글 일수록 신중하게.
제온프로 2023-02
index를 하나 생성 하시죠.. Primary key 도 주시고.
그럼 편하고 DB 자체가 index 가 있어야 하는데.
없으면 두고두고 계속 불편합니다.
DAP박인호 2023-02
MySQL에서 실행해 보지 않았는데
대충 이런 쿼리를 원하시는 듯 합니다.

SELECT id
FROM 테이블명 a
WHERE a.code = 'A061'
AND EXISTS (
SELECT 1
FROM 테이블명 c
WHERE c.grpNo IN (
SELECT grpNo
FROM 테이블명 b
WHERE b.id=a.id and b.code=a.code
)
AND c.id=a.id
GROUP BY grpNo
HAVING COUNT(*) = 1
)
     
djkneg883 2023-02
정말 감사드립니다. 해당 쿼리로 하니깐 바로 나오네요!! 좀 더 공부를 해야겠네요
민사장 2023-02
질문 자체가 무슨 소리인지 모르겠네요
     
린드버그 2023-02
말하자면, 코드가 A061, 그룹넘버가 1인 레코드의 ID 목록을 뽑고 싶다는 거 아닐까요? 물론 중복 제거하고요.

전 질문은 이해한 거 같은데 결정적으로 DB를 몰라서 ㅎㅎㅎ
          
민사장 2023-02
SELECT id FROM 테이블 WHERE code='A061' AND grpNo='1'

이렇게 쉬운걸 질문하셨을라나요 ?
               
린드버그 2023-02
아이고.. 위 DPA박인호님 댓글을 보고 다시 질문글을 자세히 보니.. 제가 잘못 이해했었네요. 부끄럽... ㅠㅜ
count 부분을 놓쳤습니다.

코드가 A061일 때의 그룹넘버가 꼭 1이어야 하는 게 아니라..  코드가 A061일 때의 그룹넘버가 뭐가 되었든, 그 그룹넘버의 갯수를 카운트 해서 그게 1인 경우에만 그 ID를 추출하고 싶다..는 얘기인가 보네요. ^^;;;

즉, id001은 코드가 A061일 때의 그룹넘버가 2인데, id001의 레코드 중 그룹넘버가 2인 게 도합 3개 있으므로 id001은 탈락.
id002는 코드가 A061일 때의 그룹넘버가 1인데, id002의 레코드 중 그룹넘버가 1인 게 딱 하나 있으므로 당첨!

이런 얘기인가 보군요.. (이번엔 제대로 이해했길.. ㅎ) ^^;; 죄송합니다.
                    
민사장 2023-02
그렇군요. 어떤 쿼리라도 짜볼순 있는데, 질문 자체가 부정확하게 쓰여있어서 답을 하고 싶어도 할수가 없네요.


QnA
제목Page 406/5731
2014-05   5268294   정은준1
2015-12   1793334   백메가
2016-10   7107   낙원전자
2024-12   648   송진홍
2009-05   7238   김건우
2017-11   4506   Beastpower
2020-03   2695   Whitesun
01-03   1194   lico98
2012-08   9478   이상헌
2014-06   4115   데이비드
2016-10   4682   audacity
2009-06   12876   일반유저
2020-04   2715   캔위드
2009-06   6298   문양호
2021-08   2823   Ibory
2020-04   2017   심우철
2023-03   1703   djkneg883
2017-11   4308   박문형
2020-04   2712   이현석1
2014-07   5095   김건우
02-04   994   불멸의샌디…
2014-07   4393   fLog