이 쿼리가 의미하는 뜻이 뭔지요? 0 3 2,271

by 오델 [2015.06.01 16:45:32]


SELECT NAME,SSN,REQDATE,RMDCD FROM SSTA5020  
       WHERE ROWID IN (SELECT MIN(ROWID) FROM SSTA5020
       GROUP BY NAME,SSN,REQDATE )
      

위 쿼리의 붉은색부분이 뜻하는 의미가 뭔지 모르겠는데...뭘 의미하는건인지요?

또한 다르게 표현하는 방법은 없는지요?

위 쿼리가 메인쿼리 FROM절 안에 인라인뷰(?) 서브쿼리(?)형태로 들어가 있다고들 하는데...뭐가 맞는것인지요?

 

by 겸댕2후니 [2015.06.01 16:49:36]

통상

select 절에 서브쿼리가 들어갈 시 -> 스칼라서브쿼리

from 절에 서브쿼리가 들어갈 시 -> 인라인뷰

where 절에 서브쿼리가 들어갈 시 -> 서브쿼리 라고 지칭한다고 알고있습니다.

 


by DarkBee [2015.06.01 16:51:13]

rowid 는 레코드가 저장되는 물리적 위치를 지정합니다.

 

중복된 레코드들중 하나를 추출하려는 의도 같습니다.


by 창조의날개 [2015.06.01 16:56:54]

SELECT MIN(ROWID) 

FROM SSTA5020

GROUP BY NAME,SSN,REQDATE

 

이 쿼리가 SSTA5020 테이블에 NAME,SSN,REQDATE 기준으로 하나의 데이터만 

ROWID를 취하는 것이니...

이렇게 추출한 ROWID를 WHERE에서 IN으로 조회 하는거죠..

 

아래 쿼리를 실행 해 보시면 좀더 도움이 될거 같네요..

SELECT NAME,SSN,REQDATE,MIN(ROWID) 

FROM SSTA5020

GROUP BY NAME,SSN,REQDATE

;

 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입