HackerRank[MySQL] : Weather Observation Station

SOOYEON·2022년 1월 13일
0

SQL

목록 보기
29/54

Weather Observation Station

1.

Query a list of CITY names from STATION for cities that have an even ID number. Print the results in any order, but exclude duplicates from the answer.

The STATION table is described as follows:

where LAT_N is the northern latitude and LONG_W is the western longitude.

MOD

SELECT DISTINCT(CITY)
FROM STATION
WHERE MOD(ID,2) = 0;

%

SELECT DISTINCT CITY
FROM STATION
WHERE ID % 2 = 0;

2.

Query the two cities in STATION with the shortest and longest CITY names, as well as their respective lengths (i.e.: number of characters in the name). If there is more than one smallest or largest city, choose the one that comes first when ordered alphabetically.

where LAT_N is the northern latitude and LONG_W is the western longitude.


Sample Input

For example, CITY has four entries: DEF, ABC, PQRS and WXY.

Sample Output

ABC 3 PQRS 4

Explanation

When ordered alphabetically, the CITY names are listed as ABC, DEF, PQRS, and WXY, with lengths  and . The longest name is PQRS, but there are  options for shortest named city. Choose ABC, because it comes first alphabetically.

Note You can write two separate queries to get the desired output. It need not be a single query.

UNION

(SELECT CITY, LENGTH(CITY)
FROM STATION
WHERE LENGTH(CITY) = (SELECT MIN(LENGTH(CITY))
                      FROM STATION)
ORDER BY CITY ASC
LIMIT 1)

UNION

(SELECT CITY, LENGTH(CITY)
FROM STATION
WHERE LENGTH(CITY) = (SELECT MAX(LENGTH(CITY))
                      FROM STATION)
ORDER BY CITY ASC
LIMIT 1)

3.

Query the list of CITY names starting with vowels (i.e., a, e, i, o, or u) from STATION. Your result cannot contain duplicates.

LIKE

SELECT CITY
FROM STATION
WHERE CITY LIKE 'a%' or  CITY LIKE 'e%' or  CITY LIKE 'i%' or  CITY LIKE 'o%' or  CITY LIKE 'u%';

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

REGEXP

SELECT DISTINCT CITY FROM STATION
WHERE CITY REGEXP '[aeiou]$';

0개의 댓글