• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 분석

  • 해결 여부

    해결됨

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

22.07.07 15:43 작성 조회수 142

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

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

SELECT *    
FROM total
UNION ALL
SELECT *    
FROM g       

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