[해커랭크] SQL Easy 문제 풀이 (1)

seo0·2024년 6월 28일

SQL

목록 보기
6/8
post-thumbnail

Revising the Select Query 1

인구가 100,000명보다 많은 CITY 테이블의 모든 미국 도시에 대한 모든 열을 쿼리합니다. 미국의 국가 코드는 USA입니다.

SELECT *
  FROM CITY
 WHERE COUNTRYCODE = 'USA'
   AND POPULATION >= 100000

Revising the Select Query 2

인구가 120000명보다 많은 CITY 테이블의 모든 미국 도시에 대한 NAME 필드를 쿼리합니다. 미국의 국가 코드는 USA입니다.

SELECT NAME
  FROM CITY
 WHERE COUNTRYCODE = 'USA'
   AND POPULATION >= 120000

Select All

CITY 테이블의 모든 행에 대한 모든 열(속성)을 쿼리합니다.

SELECT *
  FROM CITY

Select By ID

ID가 1661인 CITY의 도시에 대한 모든 열을 쿼리합니다.

SELECT *
  FROM CITY
 WHERE ID = '1661'

Japanese Cities' Attributes

CITY 테이블에 있는 모든 일본 도시의 모든 속성을 쿼리합니다. 일본의 국가 코드는 JPN입니다.

SELECT *
  FROM CITY
 WHERE COUNTRYCODE = 'JPN'

Japanese Cities' Names

CITY 테이블에 있는 모든 일본 도시의 이름을 쿼리합니다. 일본의 국가 코드는 JPN입니다.

SELECT NAME
  FROM CITY
 WHERE COUNTRYCODE = 'JPN'

Weather Observation Station 1

STATION 테이블에서 CITY 및 STATE 목록을 쿼리합니다.

SELECT CITY
     , STATE
  FROM STATION

Weather Observation Station 3

ID 번호가 짝수인 도시에 대해 STATION에서 CITY 이름 목록을 쿼리합니다. 결과를 어떤 순서로든 인쇄하되, 답에서 중복된 내용은 제외하세요.

SELECT DISTINCT CITY
  FROM STATION
 WHERE ID % 2 = 0

Weather Observation Station 4

테이블의 총 CITY 항목 수와 테이블의 개별 CITY 항목 수 간의 차이를 찾습니다.

SELECT COUNT(CITY) - COUNT(DISTINCT CITY)
  FROM STATION

Weather Observation Station 5

가장 짧고 긴 CITY 이름과 각각의 길이(예: 이름의 문자 수)를 사용하여 STATION에서 두 도시를 쿼리합니다. 가장 작은 도시나 가장 큰 도시가 두 개 이상인 경우 알파벳 순서로 가장 먼저 나오는 도시를 선택하세요.

WITH LENGTH_INFO AS (
	SELECT MIN(LENGTH(CITY)) AS MIN_LENGTH
         , MAX(LENGTH(CITY)) AS MAX_LENGTH
      FROM STATION
)
  SELECT MIN(A.CITY)
       , B.MIN_LENGTH
    FROM STATION A
    JOIN LENGTH_INFO B
      ON LENGTH(A.CITY) = B.MIN_LENGTH
GROUP BY B.MIN_LENGTH
   UNION
  SELECT MAX(A.CITY)
       , B.MAX_LENGTH
    FROM STATION A
    JOIN LENGTH_INFO B
      ON LENGTH(A.CITY) = B.MAX_LENGTH
GROUP BY B.MAX_LENGTH

Weather Observation Station 6

STATION에서 모음(예: a, e, i, o 또는 u)으로 시작하는 도시 이름 목록을 쿼리합니다. 결과에는 중복된 내용이 포함될 수 없습니다.

SELECT CITY
  FROM STATION
 WHERE SUBSTRING(CITY, 1, 1) IN ('a', 'e', 'i', 'o', 'u')

Weather Observation Station 7

STATION에서 모음(a, e, i, o, u)으로 끝나는 CITY 이름 목록을 쿼리합니다. 결과에는 중복된 내용이 포함될 수 없습니다.

SELECT DISTINCT CITY
  FROM STATION
 WHERE SUBSTRING(CITY, LENGTH(CITY), 1) IN ('a', 'e', 'i', 'o', 'u')

Weather Observation Station 8

첫 번째 문자와 마지막 문자가 모두 모음(예: a, e, i, o 및 u)인 STATION의 CITY 이름 목록을 쿼리합니다. 결과에는 중복된 내용이 포함될 수 없습니다.

SELECT DISTINCT CITY
  FROM STATION
 WHERE SUBSTRING(CITY, 1, 1) IN ('a', 'e', 'i', 'o', 'u')
   AND SUBSTRING(CITY, LENGTH(CITY), 1) IN ('a', 'e', 'i', 'o', 'u')

Weather Observation Station 9

STATION에서 모음으로 시작하지 않는 CITY 이름 목록을 쿼리합니다. 결과에는 중복된 내용이 포함될 수 없습니다.

SELECT DISTINCT CITY
  FROM STATION
 WHERE SUBSTRING(CITY, 1, 1) NOT IN ('a', 'e', 'i', 'o', 'u')

Weather Observation Station 10

STATION에서 모음으로 끝나지 않는 CITY 이름 목록을 쿼리합니다. 결과에는 중복된 내용이 포함될 수 없습니다.

SELECT DISTINCT CITY
  FROM STATION
 WHERE SUBSTRING(CITY, LENGTH(CITY), 1) NOT IN ('a', 'e', 'i', 'o', 'u')

Weather Observation Station 11

STATION에서 모음으로 시작하지 않거나 모음으로 끝나지 않는 CITY 이름 목록을 쿼리합니다. 결과에는 중복된 내용이 포함될 수 없습니다.

SELECT DISTINCT CITY
  FROM STATION
 WHERE SUBSTRING(CITY, 1, 1) NOT IN ('a', 'e', 'i', 'o', 'u')
    OR SUBSTRING(CITY, LENGTH(CITY), 1) NOT IN ('a', 'e', 'i', 'o', 'u')

Weather Observation Station 12

모음으로 시작하지 않고 모음으로 끝나지 않는 STATION의 CITY 이름 목록을 쿼리합니다. 결과에는 중복된 내용이 포함될 수 없습니다.

SELECT DISTINCT CITY
  FROM STATION
 WHERE SUBSTRING(CITY, 1, 1) NOT IN ('a', 'e', 'i', 'o', 'u')
   AND SUBSTRING(CITY, LENGTH(CITY), 1) NOT IN ('a', 'e', 'i', 'o', 'u')

Higher Than 75 Marks

STUDENTS에서 75점보다 높은 점수를 받은 학생의 이름을 쿼리합니다. 각 이름의 마지막 세 문자를 기준으로 출력을 정렬하세요. 두 명 이상의 학생 모두 마지막 세 문자로 끝나는 이름이 있는 경우(예: Bobby, Robby 등), 보조적으로 ID를 오름차순으로 정렬합니다.

  SELECT NAME
    FROM STUDENTS
   WHERE MARKS > 75
ORDER BY SUBSTRING(NAME, LENGTH(NAME) - 2, 3), ID

EMployee Names

Employee 테이블의 직원 이름 목록(즉, name 속성)을 알파벳 순서로 인쇄하는 쿼리를 작성하세요.

  SELECT NAME
    FROM EMPLOYEE
ORDER BY NAME

Employee Salaries

Employee에서 급여가 월 $2000 이상이고 직원으로 근무한 지 10개월 미만인 직원에 대한 직원 이름 목록(예: name 속성)을 인쇄하는 쿼리를 작성하세요. Employee_id를 오름차순으로 결과를 정렬합니다.

  SELECT NAME
    FROM EMPLOYEE
   WHERE SALARY >= 2000
     AND MONTHS < 10
ORDER BY EMPLOYEE_ID




0개의 댓글