๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Programming/SQL

[HackerRank] Basic Select : Weather Observation Station 1~12 (MySQL)

1๋ฒˆ

SELECT CITY, STATE
FROM STATION;

3๋ฒˆ

SELECT CITY
FROM STATION
WHERE ID % 2 = 0
GROUP BY CITY;

4๋ฒˆ

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

DISTINCT -> ์ค‘๋ณต์ œ๊ฑฐ
COUNT -> ๊ฐฏ์ˆ˜

5๋ฒˆ

SELECT CITY, CHAR_LENGTH(CITY)
    FROM STATION
    ORDER BY 2 ASC, 1 ASC LIMIT 1;

SELECT CITY, CHAR_LENGTH(CITY)
    FROM STATION
    ORDER BY 2 DESC, 1 DESC LIMIT 1;
  • CHAR_LENGTH -> ๋ฌธ์ž์—ด๊ธธ์ด
  • ASC -> ์˜ค๋ฆ„์ฐจ์ˆœ, ์•ŒํŒŒ๋ฒณ์ˆœ ์ •๋ ฌ
  • DESC -> ๋‚ด๋ฆผ์ฐจ์ˆœ, ์•ŒํŒŒ๋ฒณ์—ญ์ˆœ ์ •๋ ฌ
  • ORDER BY 2 ASC, 1 ASC
    • ์ˆซ์ž 1์™€ 2์€ SELECT ์ž๋ฆฌ์— ์žˆ๋Š” ๋‘ ์—ด์„ ๊ฐ๊ฐ ๋‚˜ํƒ€๋ƒ„
    • ORDER BY CHAR_LENGTH(CITY) ASC, CITY ASC LIMIT 1 ์™€ ๋™์ผ
    • ๊ธธ์ด์ˆœ์œผ๋กœ ๋จผ์ € ์ •๋ ฌ, ๊ทธ๋‹ค์Œ์— ์•ŒํŒŒ๋ฒณ์ˆœ ์ •๋ ฌ(์˜ค๋ฆ„์ฐจ์ˆœ์ •๋ ฌ): ๋ฌธ์ž์—ด๊ธธ์ด๊ฐ€ ๋™์ผํ•˜๋ฉด ์•ŒํŒŒ๋ฒณ์ˆœ์œผ๋กœ ์ฑ„ํƒํ•˜๋Š” ์กฐ๊ฑด ์กด์žฌ
  • LIMIT 1-> ์ƒ์œ„ 1๊ฐœ

6๋ฒˆ

SELECT CITY
FROM STATION
WHERE CITY REGEXP '^[aeiou]';
  • REGEXP : ์ •๊ทœํ‘œํ˜„์‹
  • ^ : ~๋กœ ์‹œ์ž‘
  • [] : ๋ฌธ์ž์ง‘ํ•ฉ

7๋ฒˆ

SELECT DISTINCT CITY 
FROM STATION 
WHERE CITY REGEXP '[aeiou]$';
  • $ : ~๋กœ ๋
  • SELECT DISTINCT CITY : result cannot contain duplicates

8๋ฒˆ

SELECT CITY
FROM STATION
WHERE CITY REGEXP '^[aeiou]' AND CITY REGEXP '[aeiou]$';
  • WHERE CITY REGEXP '^[aeiou]' AND CITY REGEXP '[aeiou]$'; : ๋ชจ์Œ์œผ๋กœ ์‹œ์ž‘ํ•˜๋Š” ๊ฑฐ ๋˜๋Š” ๋๋‚˜๋Š” ๊ฑฐ

9๋ฒˆ

SELECT DISTINCT CITY
FROM STATION
WHERE CITY REGEXP '^[^aeiou]';
  • '^[^aeiou]'; : [] ์•ˆ์— ^๋ฅผ ๋ถ™์œผ๋ฉด []์™€ ๋ฐ˜๋Œ€ ์กฐ๊ฑด, ์ฆ‰ aeiou๊ฐ€ ์•„๋‹ ๋•Œ์˜ ์ง‘ํ•ฉ, ๊ทธ ์•ž์— ^๋ฅผ ๋˜ ๋ถ™์ด๋ฉด aeiou๋กœ ์‹œ์ž‘ํ•˜์ง€ ์•Š๋Š” ์ง‘ํ•ฉ

10๋ฒˆ

SELECT DISTINCT CITY
FROM STATION
WHERE CITY REGEXP '[^aeiou]$';
  • '[^aeiou]$' : ๋ชจ์Œ์œผ๋กœ ๋๋‚˜์ง€ ์•Š๋Š” ๊ฒƒ๋“ค

11๋ฒˆ

SELECT DISTINCT CITY
FROM STATION
WHERE CITY REGEXP '^[^aeiou]' or CITY REGEXP '[^aeiou]$'
  • ๋ชจ์Œ์œผ๋กœ ์‹œ์ž‘ํ•˜์ง€ ์•Š๋Š” ํ˜น์€ ๋๋‚˜์ง€ ์•Š๋Š” ๊ฒƒ๋“ค

12๋ฒˆ

SELECT DISTINCT CITY
FROM STATION
WHERE CITY REGEXP '^[^aeiou]' and CITY REGEXP '[^aeiou]$';
  • ๋ชจ์Œ์œผ๋กœ ์‹œ์ž‘ํ•˜์ง€ ์•Š์œผ๋ฉด์„œ ๋๋‚˜์ง€๋„ ์•Š๋Š” ๊ฒƒ๋“ค