인프런 커뮤니티 질문&답변

03091370님의 프로필 이미지
03091370

작성한 질문수

[백문이불여일타] 데이터 분석을 위한 중급 SQL

LIMIT 함수 여러번 사용 할 순 없을까요?

해결된 질문

작성

·

247

0

 
테이블명: Customers
country customerid
UK 3
UK 2
Mexico 8
UK 7
UK 1
Mexico 3
UK 2
Mexico 6
UK 9
Korea 1
Korea 4
UK 2
Korea 7
UK 9
 
 
위와같은 테이블에서 customerid 상관없이 country별로 2개씩만 추출하고 싶은데
 
WITH total AS( SELECT country, customerid FROM Customers WHERE country IN ("UK") LIMIT 2 ), g AS( SELECT country, customerid FROM Customers WHERE country IN ("Mexico") LIMIT 2) SELECT country, customerid FROM Customers

 

이렇게 작성을 하니 UK와 Mexico의 모든 데이터가 다 나오더라구요;

반면 LIMIT를 젤 마지막 구절에 붙이니 country 상관없이 그냥 두줄만 나오구 ㅠ

WITH문에서 해당 SELECT마다 LIMIT를 붙일수 없는걸까요?

아니면 제 쿼리 작성이 잘못되서 일까요?

 

답변 1

1

지식공유자 J님의 프로필 이미지
지식공유자 J
지식공유자

WITH 문에는 문제가 없습니다.
WITH 문에서 만든 테이블마다 각각 LIMIT을 사용할 수 있습니다. 
그런데 WITH 문 바깥에서 SELECT country, customerid FROM Customers를 작성해 원 테이블인 Customers에 있는 데이터를 조회하셨네요. 

SELECT *    
FROM total
UNION ALL
SELECT *    
FROM g       

이렇게 작성하시면 각 임시 테이블로 뽑아놓은 데이터들을 조회할 수 있습니다.

03091370님의 프로필 이미지
03091370

작성한 질문수

질문하기