강의

멘토링

커뮤니티

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

snowballeffect.biz님의 프로필 이미지
snowballeffect.biz

작성한 질문수

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

1번, 2번, 3번 문제 풀이

SET3_ 문제 2번_Weather Observation Station 11 질문.

작성

·

162

1

안녕하세요,

저는 아래와 같이 쿼리를 짰는데요, 

중간에 OR를 쓰면 

(A AND B AND C AND D) OR (E AND F AND G AND H) 

식으로 연산되는 것인지 궁금합니다. 

괄호와 같은 것을 해주지 않아도 중간에 OR 해주면,

거기서부터

앞에 (A 조건과  B조건과  C조건과 D조건) 이거나 (E조건과 F조건과 G 조건과 H조건) 인 것을 출력하라. 라는 식이 되는 것인지 궁금합니다.

이렇게 중간에 끊어주는 것이 가능할지 고민이 됐었는데, 다행히 답은 맞았다고 나왔어요. 

그런데 혹여 우연히 맞았을까봐 체킹합니다. 

OR 문구만 '이거나'로 연산되고

그 이후에 나오는 'AND'조건들은 다시 앞서 나온 조건들과 '이고'의 형태로 연산되진 않을지요? 

NOT LIKE 로 더 깔끔하게 푸는 방법이 있다면 그것도 알려주시면 감사하겠습니다. 

---------

SELECT DISTINCT city

FROM station

WHERE city NOT LIKE 'a%'

AND city NOT LIKE 'e%'

AND city NOT LIKE 'i%'

AND city NOT LIKE 'o%'

AND city NOT LIKE 'u%'

OR city NOT LIKE '%a'

AND city NOT LIKE '%e'

AND city NOT LIKE '%i'

AND city NOT LIKE '%o'

AND city NOT LIKE '%u'

답변 1

0

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

안녕하세요 snowballeffect.biz님

질문주신 쿼리와 같이 괄호 없는 OR로 조건이 연결될 경우 OR 문구만 '이거나'로 연산되고 그 이후에 나오는 'AND'조건들은 다시 앞서 나온 조건들과 '이고'의 형태로 연산되는 것이 맞습니다.

따라서 해당 문제에서 괄호 없이 OR로 조건을 연결하셨을 때에는 오답처리가 되어야 한다고 답변드릴 수 있을 것 같습니다. 해커랭크에서 해당 쿼리를 정답처리한 이유까지 정확히 확인하기는 어려우나 인터프리터의 단순 버그일 것으로 생각됩니다.

NOT LIKE를 이용한 방법으로는 제시해주신 방법이 가장 적합한 풀이인 것으로 생각됩니다.

감사합니다.

snowballeffect.biz님의 프로필 이미지
snowballeffect.biz

작성한 질문수

질문하기