SQL 해커랭크 문제 정리

0

SQL

목록 보기
1/2
post-thumbnail

문제 1

고유값 + 짝수 ID만

  • WHERE 절에 연산 사용 가능 (2로 나눌 때 % 나머지 0)

문제 2

기존 테이블의 수 - 고유값의 수

  • count로 연산 가능
  • select 절 안에서도 연산 가능

문제 3

각 도시의 글자 수가 가장 큰 값과 그 때의 개수
각 도시의 글자 수가 가장 작은 값과 그 때의 개수
동일한 갯수라면 알파벳 순서로 가장 먼저 오는 값

  • 연산 값과 필드값 동시에 가져올 수 있음
  • 정렬은 ORDER BY + FIELD + ASC/DESC
  • 오름차순 정렬을 하고 LIMIT 1을 걸면 가장 알파벳 순서가 빠른값이 출력

문제 4

모음으로 시작되는 도시만 조회

  • 처음에는 SUBSTRING에 조건을 1만 넣어서 조회가 안됌

  • 1만 넣으면 1부터 끝까지 문자를 지정

  • 어디까지 문자를 고를 지 지정해주면 된다.

참고 : SUBSTRING 문자열

문제 5

모음으로 끝나는 도시만 조회


문제 6

모음이 앞과 뒤에 모두 포함된 경우

~문자 포함


다 풀고 나서 추가된 내용으로 문제 5, 6은 아래와 같이 풀 수 있다.

위에 조건을 LIKE를 사용하면 조금 더 간단하게 만들 수 있다.


SELECT DISTINCT CITY FROM WHERE CITY LIKE 'a%' OR 'e%' OR 'i%' OR 'o%' OR 'u%'

SELECT DISTINCT CITY FROM WHERE CITY LIKE '%a' OR '%e' OR '%i' OR '%o' OR '%u'

LIKE- W3SCHOOL

문제 7

MARKS > 75
동점일 시 NAME 끝자리 3글자로 오름차순 정렬에 따라서 조회
추가 동일 시 ID 번호에 따라 오름차순

  • 위의 쿼리가 오류가 난 이유는 뒤에서부터 시작지점을 지정하면 뒤에서부터 3글자를 카운트하는 일반적인 프로그래밍 언어와 달리 sql은 시작지점을 글자수만큼 앞으로 지정을 해주어야 한다.

SELECT NAME FROM STUDENTS WHERE MARKS> &% ORDER BY SUBSTRING(NAME,-3,-3) ASC ,ID ASC
  • 위의 쿼리를 돌리면 결과가 잘 나온다.

문제 8

profile
기록을 통해 한 걸음씩 성장ing!

0개의 댓글

Powered by GraphCDN, the GraphQL CDN