본문 바로가기

SQL/[HackerRank]

[HackerRank/MySQL] Weather Observation Station 5

728x90

< Problem >

STATION 테이블에서 글자수가 가장 적은 CITY의 이름과 글자수, 가장 많은 CITY의 이름과 글자수 출력

(단, 글자수가 같은 값이 2개일 경우, 알파벳 순으로 가장 첫번째 출력)

링크:  https://www.hackerrank.com/challenges/weather-observation-station-5/problem

 

Weather Observation Station 5 | HackerRank

Write a query to print the shortest and longest length city name along with the length of the city names.

www.hackerrank.com


< Code >

(SELECT city, LENGTH(city)
FROM station
ORDER BY LENGTH(city) ASC, city ASC
LIMIT 0, 1)
UNION
(SELECT city, LENGTH(city)
FROM station
ORDER BY LENGTH(city) DESC, city ASC
LIMIT 0, 1)

 

(SELECT city, LENGTH(city)
FROM station
ORDER BY LENGTH(city) ASC, city ASC
LIMIT 1)
UNION
(SELECT city, LENGTH(city)
FROM station
ORDER BY LENGTH(city) DESC, city ASC
LIMIT 1)

 

(SELECT city, LENGTH(city)
FROM station
ORDER BY LENGTH(city) ASC, city ASC
LIMIT 0, 1)
UNION ALL
(SELECT city, LENGTH(city)
FROM station
ORDER BY LENGTH(city) DESC, city ASC
LIMIT 0, 1)

 

< Lesson & Learned >

SELECT 문 (조건검색)

SELECT: 키워드와 함께 검색하고 싶은 속성의 이름을 나열

FROM: 키워드와 함께 검색하고 싶은 속성이 있는 데이블의 이름을 나열

LENGTH( ): 문자열의 BYTE 길이를 가져옴.

ORDER BY: 결과 테이블 내용을 원하는 순서로 출력. 오름차순(기본): ASC, 내림차순: DESC

LIMIT a, b: a+1번째 행에서부터 a+b번째 행까지의 데이터를 가져옴.

LIMIT a: 첫번째 행에서부터 a개 데이터를 가져옴.

UNION: 두 개의 쿼리를 연속으로 추력, 두 개의 쿼리가 조회하는 칼럼의 개수와 데이터의 형식이 같아야 조회가 가능함. 중복 허용시에는 UNION ALL 사용

728x90