> 개발-IT-인터넷/> SQL

[해커랭크(HackerRank) SQL 풀이] - Weather Observation Station 5

jini:) 2023. 10. 26. 10:43
728x90
반응형
해커 랭크 - https://www.hackerrank.com/
Prepare > SQL > Basic Select > Weather Observation Station 5

 

 

HackerRank - Online Coding Tests and Technical Interviews

HackerRank is the market-leading coding test and interview solution for hiring developers. Start hiring at the pace of innovation!

www.hackerrank.com

 

 

STATION에 있는 도시 중 CITY 이름이 가장 짧거나, 긴 두 도시의 이름과 각각의 길이(이름에 포함된 문자 수)를 조회합니다.

가장 작은 도시 또는 가장 큰 도시가 둘 이상 있는 경우 알파벳 순으로 정렬할 때 가장 먼저 오는 도시를 선택합니다.

STATION 테이블은 다음과 같이 설명됩니다.

​[출처] https://www.hackerrank.com/challenges/weather-observation-station-5/problem

 

여기서 LAT_N은 북위, LONG_W는 서경입니다.

 

Sample Input

예를 들어 CITY에는 DEF, ABC, PQRS, WXY의 네 가지 항목이 있습니다.

 

Sample Output

ABC 3
PQRS 4

 

알파벳 순서대로 도시 이름을 나열하면 ABC, DEF, PQRS, WXY순으로 나열됩니다.

가장 긴 이름은 PQRS이지만 가장 짧은 이름의 도시를 선택할 수 있는 옵션은 ABC입니다.

왜냐하면  ABC가 알파벳 순서로 가장 먼저 나오기 때문입니다.

 

Note

두 개의 개별 쿼리를 작성하여 원하는 출력을 얻을 수 있습니다. 단일 쿼리일 필요는 없습니다.

 

반응형

 

MySQL
SELECT  CITY, MIN(CHAR_LENGTH(CITY))
FROM    STATION
GROUP BY CITY
ORDER BY CHAR_LENGTH(CITY) ASC, CITY ASC
LIMIT 0, 1;

SELECT  CITY, MAX(CHAR_LENGTH(CITY))
FROM    STATION
GROUP BY CITY
ORDER BY CHAR_LENGTH(CITY) DESC, CITY ASC
LIMIT 0, 1;

 

Oracle
SELECT  *
FROM    (SELECT CITY, MIN(LENGTH(CITY))
         FROM    STATION
         GROUP BY CITY
         ORDER BY LENGTH(CITY) ASC, CITY ASC
        )
WHERE   ROWNUM <= 1;

SELECT  *
FROM    (SELECT CITY, MAX(LENGTH(CITY))
         FROM    STATION
         GROUP BY CITY
         ORDER BY LENGTH(CITY) DESC, CITY ASC
         )
WHERE   ROWNUM <= 1;

 

MS SQL Server
SELECT  TOP 1
        CITY, MIN(LEN(CITY))
FROM    STATION
GROUP BY CITY
ORDER BY LEN(CITY) ASC, CITY ASC;

SELECT  TOP 1
        CITY, MAX(LEN(CITY))
FROM    STATION
GROUP BY CITY
ORDER BY LEN(CITY) DESC, CITY ASC;

 


  • 길이를 찾는 함수
    • MySQL : CHAR_LENGTH()
    • Oracle : LENGTH()
    • MSSQL : LEN()

 

  • 데이터 추출 개수 제한
    • MySQL : LIMIT
    • Oracle : ROWNUM
    • MSSQL : TOP

 

 

개인 공부를 위한 포스팅입니다.
모든 번역, 코드는 완벽하지 않을 수 있습니다.

 

 

728x90
반응형