• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 분석

  • 해결 여부

    미해결

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

21.04.16 01:25 작성 조회수 91

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를 이용한 방법으로는 제시해주신 방법이 가장 적합한 풀이인 것으로 생각됩니다.

감사합니다.