본문 바로가기

SQL

(4)
[SQL] SQL로 이진트리 탐색하기(HackerRank - Binary Tree Nodes 문제) 🔊 본 포스팅에서 사용되는 테이블의 자료와 출처는 HackerRank 임을 밝힙니다. 더 다양한 SQL 문제를 풀어보시려면HackerRank 사이트를 방문해 보세요! 이번 포스팅에서는 SQL로 이진트리를 탐색하는 문제를 풀어보려 한다. 문제 원본은 여기를 클릭해 확인하자. 우선은 이진트리(Binary Tree)는 다음과 같은 특성을 갖고 있다. $Leaf$ 노드를 제외하고 $Root$ 노드를 포함한 모든 부모(Parent) 노드는 자신의 노드값 기준으로 왼쪽은 무조건 작은 값, 오른쪽은 무조건 큰 값이 존재하는 트리 구조라고 할 수 있다. 단, 부모 노드에 자식 노드가 하나만 존재하는 것이 가능하다. 텍스트로 이해하기 쉽지 않을 수도 있기에 이진트리의 구조를 사진으로 가져와 보았다. 이제 이진트리가 무엇..
[SQL] HackerRank - Placements 문제 🔊 본 포스팅에서 사용되는 테이블의 자료와 출처는 HackerRank 임을 밝힙니다. 더 다양한 SQL 문제를 풀어보시려면 HackerRank 사이트를 방문해 보세요! 이번 포스팅에서는 HackerRank의 Placements 문제를 풀어보려고 한다. 문제 원본은 여기를 클릭해 확인해보자. 다른 문제들 보다는 수월하게 해결했기 때문에 문제 풀이에 활용한 아이디어와 정답 SQL 구문만 제시하고 간단하게 포스팅을 마치려 한다. 문제에서 요구하는 사항은 다음과 같다. Write a query to output the names of those students whose best friends got offered a higher salary than them. Names must be ordered by th..
[SQL] MySQL - SET 과 서브쿼리 사용하기 🔊 본 포스팅에서 사용되는 테이블의 자료와 출처는 프로그래머스임을 밝힙니다. 더 다양한 SQL 문제를 풀어보시려면 프로그래머스 사이트를 방문해보세요! 이번 포스팅에서 소개할 SQL 구문은 프로그래머스 SQL 고득점 Kit의 Group by 카테고리의 입양 시각 구하기(2) 문제 풀이에 사용된 구문이다. 문제 풀이에 사용될 테이블과 문제에 대한 자세한 설명은 해당 문제의 링크를 참고하자. 문제에서 요구하는 사항은 다음과 같다. 보호소에서는 몇 시에 입양이 가장 활발하게 일어나는지 알아보려 합니다. 0시부터 23시까지, 각 시간대별로 입양이 몇 건이나 발생했는지 조회하는 SQL문을 작성해주세요. 이때 결과는 시간대 순으로 정렬해야 합니다. 이 때 활용할 방법은 SET 이라는 문법을 이용해 새로운 변수를 할당..
[SQL] MySQL - ALL 사용법 🔊 본 포스팅에서 사용되는 테이블의 자료와 출처는 SQL Zoo임을 밝힙니다. 더 다양한 SQL 문제를 풀어보시려면 SQL Zoo 사이트를 방문해보세요! 이번 포스팅에서는 MySQL에서 사용되는 문법 중 하나인 'ALL'을 사용하여 SQL 문제를 푸는 방법에 대해 알아보려고 한다. 3가지 문제를 풀어볼 텐데, 첫 번째 문제에서 ALL에 대한 방법을 익히면 2, 3번째 문제는 감을 잡고 손쉽게 풀 수 있다. 우선 해당 문제와 문제 풀 때 이용할 데이터 테이블에 대해 살펴보자. 첫 번째 문제는 다음과 같으며 문제가 요구하는 정답의 테이블 형태도 함께 살펴보자. List each continent and the name of the country that comes first alphabetically. (각..