한 테이블 내의 지역별 공통된 아이템 찾기. 0 3 2,940

by playlyun INTERSECT UNION JOIN [2015.10.20 12:00:01]


음.. 예를들어

 

아이템 테이블이 지역구분으로 아이템이 있습니다.. 

 

시 | 구 | 동 | 아이템 

 

테이블에 내용은

 

서울시 | 도봉구 | 방학1동 | 스타벅스

서울시 | 도봉구 | 방학1동 | 이디야

서울시 | 도봉구 | 방학1동 | 탐앤탐스

서울시 | 도봉구 | 방학2동 | 스타벅스

서울시 | 도봉구 | 방학2동 | 이디야

서울시 | 도봉구 | 방학2동 | 커피빈

서울시 | 노원구 | 쌍문1동 | 커피빈

서울시 | 노원구 | 쌍문2동 | 커피빈

서울시 | 노원구 | 쌍문3동 | 커피빈

...

 

이런식이면

 

도봉구에 있는 공통된 커피집을 찾는겁니다 '-'

 

쿼리를 어떻게 넣어야할까요

현재 예시된 테이블에서는

 

... where 방학1동 INTERSECT ... where 방학2동

 

하면 원하는 값이 나오지만 '동' 컬럼이 100개가 될수도 있을때의 쿼리를 어떻게 해야될지 궁금합니다.

by 창조의날개 [2015.10.20 13:18:11]

WITH TT(시, 구, 동, 아이템) AS (
      SELECT '서울시', '도봉구', '방학1동', '스타벅스' FROM DUAL UNION ALL
      SELECT '서울시', '도봉구', '방학1동', '이디야' FROM DUAL UNION ALL
      SELECT '서울시', '도봉구', '방학1동', '탐앤탐스' FROM DUAL UNION ALL
      SELECT '서울시', '도봉구', '방학2동', '스타벅스' FROM DUAL UNION ALL
      SELECT '서울시', '도봉구', '방학2동', '이디야' FROM DUAL UNION ALL
      SELECT '서울시', '도봉구', '방학2동', '커피빈' FROM DUAL UNION ALL
      SELECT '서울시', '노원구', '쌍문1동', '커피빈' FROM DUAL UNION ALL
      SELECT '서울시', '노원구', '쌍문2동', '커피빈' FROM DUAL UNION ALL
      SELECT '서울시', '노원구', '쌍문3동', '커피빈' FROM DUAL
)
SELECT 시,구,아이템
FROM TT
GROUP BY 시,구,아이템
HAVING COUNT(*) > 1
;

 


by playlyun [2015.10.21 12:21:23]

이런식이면 시,구,동 관련 데이터가 추가될때마다 쿼리가 수정되야 되서.. 다른방법을 찾고있습니다.


by 마농 [2015.10.21 16:55:59]

With 구문에 대한 오해입니다.

Select 구문만 참고해서 보시면 됩니다.

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