• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 분석

  • 해결 여부

    미해결

개별 쿼리 연결 시

21.04.28 16:14 작성 조회수 127

2

강사님 안녕하세요.

해당 문제 답을 

SELECT city, length(city) length_city

FROM station

ORDER BY length_city, city

LIMIT 1;

SELECT city, length(city) length_city

FROM station

ORDER BY length_city DESC, city

LIMIT 1

라고 UNION 없이 적으셨는데 쿼리가 돌아가서 놀랐어요.

저는 개별 쿼리를 연결하려면 UNION이 꼭 필요하다고 생각했거든요.

그럼 쿼리 연결할 때 UNION이 꼭 필요한 경우는 언제인가요??

그냥 세미콜론 하나로 연결 가능하다면 UNION은 왜 존재하는지 혼란스럽습니다 ;_;

답변 3

·

답변을 작성해보세요.

1

1. 이 문제에서 UNION 대신 세미콜론을 사용한 이유는 정렬을 해야하기 때문입니다. 
UNION과 ORDER BY 절이 같이 실행이 되지 않기 때문에 원하는 결과를 얻지 못할 수 있습니다.

2. 세미콜론으로 두 결과값을 연결해서 출력하는 방법은 서브쿼리 안에서는 사용 불가합니다. 
만약 이 문제의 쿼리 전체가 서브쿼리 안에 들어가야 한다면 UNION, 또는 다른 방법으로 풀어야 합니다. 

1

헬로월드님의 프로필

헬로월드

2021.05.03

저도 궁금합니다 오히려 union 해주면 안돌아가네요

0

최원빈님의 프로필

최원빈

2022.07.04

혹시 여기에 질문을 드려도 되는지 몰라 한번 글 남겨봅니다.

그러면 혹시 아래와 같이 (  )를 쳐서 두개를 구분하고, 

UNION으로 묶어도 되는 걸까요?

답은 잘 나오는 것 같더라고요!

 

(SELECT CITY, LENGTH(CITY)

FROM STATION

ORDER BY LENGTH(CITY) DESC, CITY

LIMIT 1)

 

UNION

 

(SELECT CITY, LENGTH(CITY)

FROM STATION

ORDER BY LENGTH(CITY) ASC, CITY

LIMIT 1);