전체 글 171

45. Ollivander's Inventory - 졌잘싸

이번 문제는 다른 데이터 셋을 연결하는 문제이다. is_evil이 0이고 code, age, power에 따른 coins_needed의 최소값을 찾는 것이다. age와 power가 같은 것중 최저의 coins_needed를 찾는 문제이다. 먼저 GROUP BY로 최소의 값을 찾아보았다. ID때문에 오류가 나는 것으로 보인다. ID 변수를 지우면 정상적으로 출력이 된다. FROM 절에서 데이터를 불러와도 잘 안되었다... WHERE절을 이용해서 두 데이터를 합쳐보려고했는데 잘 되지않았다... ID만 다르고 다른 것은 다 같은 것들을 걸러내는 것이 안되었다. WHERE에 CODE를 더 넣어서 해보았는데 중복된 값을 걸러내는 것이 불가능했다... 혹시 EVIL이 0, 1로 구분되지않을까하는 마음에 시도해보았는..

44. Binary Tree Nodes - 다른 코드 참고

데이터의 구조를 파악하고 출력하는 문제이다. 트리형인 데이터를 leaf, inner, loot로 구분하면 된다. 먼저 상위 노드로 이어지는 쿼리를 작성해보았다. 이 쿼리의 문제는 최상의 노드로 가면 데이터가 삭제된다.... 그래서 15개 데이터 중 12개만이 출력되었다. (+)=로 바꿔서도 해보았는데 오류가 났다... 원래 내 생각은 이 코드가 잘 되었다면 2,3,4번째항에 null이 있다면 끝나는 것으로 생각해서 처음 되는 것은 leaf, 그 다음은 inner, 마지막은 root로 지으려고했으나 잘 되지않았다... 3일정도 생각을 해보았는데 잘 모르겠더라... 그래서 결국 다른 사람의 쿼리를 보았다.. 간단하게 CONCAT 함수로 구현했다. P가 NULL이면 ROOT N이 P에 있으면 INNER 이외엔..

43. THE PADS

이름 및 직업의 첫번째 글자를 출력하고 끝에 직업별 인원수를 작성하면 되는 문제이다. substr 코드를 사용해서 직업의 첫번째 글자를 가져오자 이후 count를 통해 개수 및 직업을 가져오면 될 것같다.!!! 나는 두가지로 나눠서 출력하려고 시도했다. 새로 등장한 함수를 소개하면, CONCAT은 문자열을 결합할 수 있는 함수이다. 쉼표로 여러 문자열을 이어줄 수 있고 내부에 함수도 적용할 수 있으니 예쁘게 출력이 가능하다. 아래에서는 첫글자를 괄호 안에 넣어야해서 CONCAT을 사용했다. 또한 두번째 쿼리에서 CONCAT으로 여러 함수, 변수를 한꺼번에 출력할 수 있는 것을 보여줬다. 세부 조건을 ORDER BY로 정돈해주면 된다. 그런데 틀렸다... 1번째 쿼리에서 NAME을 CONCAT안에 집어넣어..

42. Weather Observation Station 20

. MEDIAN 값을 출력해보자 where과 rank를 써서 문제를 한번 풀어보자 순위를 뽑아서 하려고했는데 잘 나오지 않았다... 왜 안되는지는 사실 아직도 잘 모름...ㅠ 결국 데이터 개수를 먼저 세보고 중간값이 250등이라는 것을 계산한 뒤에 값을 뽑았다. 답은 맞추긴했는데 짜임새가 만족스럽지않다... 다음 풀어볼때는 더 성장해서 만족할 답을 적어보자

40. Average Population of Each Continent

나라별 인구의 평균을 뽑아보자 문제를 푸는 순서는 1. 먼저 WHERE로 두 데이터를 묶는다. 2. GROUP BY로 나라별로 묶는다. 3. AVG로 인구의 평균을 계산한다. 4. FLOOR로 버림을한다.(TRUNC도 가능) 내가 5일전에 문제를 잘 풀었나 확인해보자 이번 문제는 한번에 풀었다. 한번에 맞추니 기분이 너무 좋다.. 앞으로도 한번의 실행으로 정답을 꺼낼 수 있게 노력해보자

38. Population Census

오랜만에 코딩테스트 문제이다. 요즘도 꾸준히 문제를 풀려고하는데 갑자기 어려워진 느낌이라서 많이 느려졌다. 그래도 계속 도전해보고있으니 언젠가는 풀리지않을까?? 아무튼 지난번에 풀었던 문제를 다 정리하면서 마음을 정리해보자 이번 문제는 두 테이블을 연결해서 AISA 인구의 합을 구하는 문제이다. WHERE XXX=YYY로 연결해보면 될 것이다. 처음 시도에는 틀렸다.. 왜 틀렸는지 생각해보자 asia에서만 뽑아야하는데 전체에서 다 합친 인구를 구했다, where에서 조건을 하나 더 추가해서 다시 해보자 다시 해보니 맞췄다. 문제를 천천히 읽고 조심 또 조심해보자

76. 서브쿼리6(FROM절)

쿼리의 결과로 새로운 결과 집합을 만들어보자 FROM의 서브 쿼리는 IN LINE VIEW라고 하는데 WHERE절에서는 분석함수를 사용할 수 없어 FROM 절에 서브 쿼리문을 사용해서 서브 쿼리문을 먼저 실행시키고, 출력된 결과를 WHERE로 검색한다. 아래 예시에서는 FROM절에서 모든 사원 이름, 월급, 월급 순위를 만들고 이중에서 순위가 1인 사원을 골라내게 된다.

코딩/SQL 2022.06.12