• Home
  • About
    • 최정재 photo

      최정재

      창의적인 시각으로 다양한 가능성을 탐색하는 개발의 모험가

    • Learn More
    • Email
    • Instagram
    • Github
    • Youtube
  • Posts
    • All Posts
    • All Tags
    • All Categories
  • Projects

[SQL] SQL 문제풀기 #1

27 Sep 2024

Reading time ~1 minute

시작하기 앞

전산직에 지원하다보니 코딩테스트에 SQL이 포함되는 경우도 있다.
그래서 이 참에 코테 연습겸 같이 병행 할까 한다.

CONCAT

https://school.programmers.co.kr/learn/courses/30/lessons/298515

1

CONCAT은 문자열을 이어주는 역할을 한다.
현재 문제에서 길이에 cm를 추가해줘야하므로 CONCAT을 활용한다.

SELECT CONCAT(max(LENGTH),'cm') as MAX_LENGTH FROM FISH_INFO

DATE_FORMAT

https://school.programmers.co.kr/learn/courses/30/lessons/298516

2

날짜 비교하는 문제는 자주 출제된다
DATE_FORMAT으로 형식을 바꾸어 비교를 쉽게 하도록하자

SELECT count(*) as FISH_COUNT FROM FISH_INFO WHERE DATE_FORMAT(TIME, "%Y") = 2021

IFNULL, LIMIT

https://school.programmers.co.kr/learn/courses/30/lessons/298517

1

IFNULL(A,B)를 활용하여 A가 NULL일시 B로 바꾸어 준다.
그리고 갯수를 10개로 제한해야하니 LIMIT를 걸어준다.

SELECT ID, LENGTH FROM FISH_INFO ORDER BY IFNULL(LENGTH,10) DESC, ID LIMIT 10

ROUND

https://school.programmers.co.kr/learn/courses/30/lessons/293259

2

ROUND를 활용하여 소수점을 반올림 하려한다.
ROUND(A,B) A에 값을 넣고 반올림하고 싶은 자리수를 B에 넣으면 반올림해준다.

SELECT ROUND(avg(IFNULL(LENGTH,10)),2) as AVERAGE_LENGTH FROM FISH_INFO 

IS NULL

https://school.programmers.co.kr/learn/courses/30/lessons/293258

3

차피 10cm 이하면 null로 표기되고 있어 IS NULL을 활용하여 NULL인지 확인해주면 된다.

SELECT COUNT(*) AS FISH_COUNT FROM FISH_INFO WHERE LENGTH IS NULL;

IN

https://school.programmers.co.kr/learn/courses/30/lessons/276013

4

OR을 이용하여 푸는 방법도 있지만
보다 간편하게 IN을 이용할 수 있다.
WHERE ‘KEYWORD’ IN (COL1,COL2,COL3)을 이용하여 COLUMN에 있는 키워드가 있는지 찾아낼 수 있다.

SELECT ID, EMAIL, FIRST_NAME, LAST_NAME FROM DEVELOPER_INFOS WHERE SKILL_1 = 'Python' OR SKILL_2 = 'Python' OR SKILL_3 = 'Python' ORDER BY ID
SELECT ID,EMAIL,FIRST_NAME,LAST_NAME
FROM DEVELOPER_INFOS
WHERE 'Python' IN (SKILL_1,SKILL_2,SKILL3)
ORDER BY ID


SQL Share Tweet +1