SELECT

프로그래머스 레벨1짜리 SQL 문제이다. 문제 링크

INNER JOIN을 이용하는 문제이다.

저번 문제에서도 Join을 써보긴 했지만 이번 문제까지 풀면서 어느정도 Join에 익숙해진것 같다.

이번 문제에서 배운 점은 아래와 같다.

  • INNER JOIN을 사용하는법

풀이

SELECT b.title, b.board_id, r.reply_id, r.writer_id, r.contents, DATE_FORMAT(r.created_date,"%Y-%m-%d") AS created_date
FROM used_goods_reply AS r
INNER JOIN used_goods_board AS b
ON b.board_id = r.board_id
WHERE MONTH(b.created_date) = 10
ORDER BY r.created_date, b.title

 

SELECT

프로그래머스 레벨1짜리 SQL 문제이다. 문제 링크

SQL에도 SUM, COUNT같은 함수가 있단걸 알았다.

아무래도 기본 문법들은 꾸준히 써보면서 익혀야할 것 같다.

이번 문제에서 배운 점은 아래와 같다.

  1. ROUND, SUM, COUNT의 존재
  2. ROUND로 소숫점 원하는 자리 수까지 반올림해서 표현 가능
    ROUND(컬럼, 원하는 자리 수)

풀이

SELECT ROUND(SUM(daily_fee)/COUNT(car_id), 2) as AVERAGE_FEE
FROM car_rental_company_car
WHERE car_type = "SUV"

SELECT

프로그래머스 레벨1짜리 SQL 문제이다. 문제 링크

주소에서 "강원도" 라는 단어를 포함한 값을 찾는 문제였다.

쉬운 문제였지만 역시 Like 라는걸 이용할 줄 알아야 풀 수 있었다.

이번 문제에서 배운 점은 아래와 같다.

  • Like 를 사용하는 법

풀이

SELECT factory_id, factory_name, address
FROM food_factory
WHERE address LIKE "강원도%"
ORDER BY factory_id

SELECT

프로그래머스 레벨1짜리 SQL 문제이다. 문제 링크

JOIN을 사용하는 문제다.

DB를 JPA로 배우다 보니 QueryDSL을 쓰면서 조인을 써보긴 했지만 기본 문법 지식이 모자라서

막상 써보라고 하면 어떻게 써야할지 몰랐다.

SQL 문제를 여러개 풀어보면서 익히는 수 밖에 없겠다.

이번 문제에서 배운 점은 아래와 같다.

  • LEFT JOIN을 사용하는법

풀이

SELECT fh.flavor
FROM first_half AS fh
LEFT JOIN icecream_info AS info
ON fh.flavor = info.flavor
WHERE fh.total_order > 3000 AND info.ingredient_type = "fruit_based"
ORDER BY fh.total_order DESC

 

SELECT

프로그래머스 레벨2짜리 SQL 문제이다. 문제 링크

역시 기본 문법을 너무 모른다는 생각이 들었다.

DATE_FORMAT의 문법은 이 글에 정리되어 있으니 참고하자.

이번 문제에서 배운 점은 아래와 같다.

  1. DATE_FORMAT으로 날짜 데이터를 포매팅하는 법
    DATE_FORMAT(컬럼, DATE_FORMAT 문법)
  2. IS NOT NULL로 NULL이 아닌 컬럼 필터링

풀이

SELECT member_id, member_name, gender, DATE_FORMAT(date_of_birth, '%Y-%m-%d') AS date_of_birth
FROM member_profile
WHERE (MONTH(date_of_birth) = 3) AND (gender = "W") AND (tlno IS NOT NULL)
ORDER BY member_id

SELECT

프로그래머스 레벨1짜리 SQL 문제이다. 문제 링크

역시 이런 기본적인 문제도 보면 어려워 하니 SQL 기본기가 굉장히 부족하다고 느낀다.

SQL 입문하다시피 하니 대문자, 소문자의 컨벤션 같은건 차차 고쳐야겠다.

이 문제에서 배운 점은 아래와 같다.

  1. IFNULL로 특정 컬럼이 null일 때 원하는 값으로 출력하는 법
    IFNULL(컬럼명, null일 때 출력할 값)
  2. OrderBy 조건이 여러개일 때 설정하는법

풀이

SELECT pt_name, pt_no, gend_cd, age, IFNULL(tlno,"NONE") AS tlno
FROM patient
WHERE (age <= 12) AND (gend_cd = "W")
ORDER BY age DESC, pt_name

+ Recent posts