MySQL - 프로그래머스 레벨 : 2(3) - ORDER BY '정답률'

먹보·2022년 12월 12일
0
post-thumbnail

2번 연속의 프로젝트 이후 돌아왔다...이제는 다시 프로그래머스 달려보자

1. 가격이 제일 비싼 식품의 정보 출력하기

테이블 설명 : 다음은 식품의 정보를 담은 FOOD_PRODUCT 테이블입니다. FOOD_PRODUCT 테이블은 다음과 같으며 PRODUCT_ID, PRODUCT_NAME, PRODUCT_CD, CATEGORY, PRICE는 식품 ID, 식품 이름, 식품 코드, 식품분류, 식품 가격을 의미합니다.

문제 : FOOD_PRODUCT 테이블에서 가격이 제일 비싼 식품의 식품 ID, 식품 이름, 식품 코드, 식품분류, 식품 가격을 조회하는 SQL문을 작성해주세요.

SELECT
PRODUCT_ID,
PRODUCT_NAME,
PRODUCT_CD,
CATEGORY,
PRICE
FROM FOOD_PRODUCT
ORDER BY PRICE DESC
LIMIT 1

🗒️코멘트 : NULL

2. 루시와 엘라 찾기

테이블 설명 : ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다.

문제 : 동물 보호소에 들어온 동물 중 이름이 Lucy, Ella, Pickle, Rogan, Sabrina, Mitty인 동물의 아이디와 이름, 성별 및 중성화 여부를 조회하는 SQL 문을 작성해주세요.

SELECT
ANIMAL_ID,
NAME,
SEX_UPON_INTAKE
FROM ANIMAL_INS
WHERE NAME = "Lucy" OR NAME = "Ella" OR NAME = "Pickle" OR NAME = "Rogan" OR NAME = "Sabrina" OR NAME = "Mitty"
//너무 이상한 코드....그래서 구글링 결과!!!
SELECT
ANIMAL_ID,
NAME,
SEX_UPON_INTAKE
FROM
ANIMAL_INS
WHERE NAME 
IN("Lucy", "Ella", "Pickle","Rogan", "Sabrina", "Mitty")
ORDER BY ANIMAL_ID

🗒️코멘트 : WHERE 절에서 여러개의 조건을 써야 할 때 더욱 간결히 쓸 수 있는 문법을 발견하였다!! 짜잔
https://www.w3schools.com/mysql/mysql_in.asp

3. 카테고리 별 상품 개수 구하기

테이블 설명 : 다음은 어느 의류 쇼핑몰에서 판매중인 상품들의 정보를 담은 PRODUCT 테이블입니다. PRODUCT 테이블은 아래와 같은 구조로 되어있으며, PRODUCT_ID, PRODUCT_CODE, PRICE는 각각 상품 ID, 상품코드, 판매가를 나타냅니다.

문제 : PRODUCT 테이블에서 상품 카테고리 코드(PRODUCT_CODE 앞 2자리) 별 상품 개수를 출력하는 SQL문을 작성해주세요. 결과는 상품 카테고리 코드를 기준으로 오름차순 정렬해주세요.

SELECT
LEFT(PRODUCT_CODE,2) AS CATEGORY,
COUNT(PRODUCT_CODE) AS PRODUCTS
FROM PRODUCT
GROUP BY LEFT(PRODUCT_CODE,2)

🗒️코멘트 : 오랜만에 돌아와 풀었던 MySQL 문법 문제 중에 가장 어려웠던 문제 사실상 쓰고 나서 생각해보면 간단한 것 처럼 보이지만 LEFT () FUNCTION의 존재 조차 몰랐던 나에게 있어 이걸 MySQL 공식 문서 구글링 만으로 풀었다는게 믿겨지지가 않는다. 처음에 문제를 마주쳤을 때 난감하기만 했지만, PRODUCT_CODE의 앞 2자리만 남길 수 있을 까란 의문으로 시작해서 "FIRST TWO LETTERS MYSQL"로 검색을 시도했고 LEFT라는 함수를 찾았을 때 한 번 놀랐고 이거와 GROUP BY라는 함수를 같이 써서 원하는 결과 값을 얻었을 때 다시 한 번 희열을 느꼈다...코딩 테스트를 푸는 건 이 맛이지!!! 비록 MYSQL 코테가 점수에 들어가지는 않지만 재밌는 걸 어쩌겠노!!!

📌총평 :

와...진짜 내가 코딩테스트를 푸는 이유를 다시 한 번 느꼈다. 새로운 문법도 배울 수 있고, 어려운 수학 문제를 오래 잡고 있다가 푸는 것과 동일한 희열을 느낄 수 있다!! 짜릿 짜릿!!! 내일 다시 돌아온다!!

profile
🍖먹은 만큼 성장하는 개발자👩‍💻

0개의 댓글