프로그래머스 sql 문제 풀이로 기본 다지기
by darami회사 데이터 못 만져서 집에서 새로 나온 프로그래머스 문제로 몸 풀기
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
[정답코드]
SELECT *
FROM FOOD_PRODUCT
WHERE PRICE = ( SELECT MAX(PRICE) AS mprice
FROM FOOD_PRODUCT
)
- 왜 서브쿼리를 써야할까요?
이 코드는 왜 안되나요?
SELECT *
FROM FOOD_PRODUCT
WHERE PRICE = MAX(PRICE)
SQL 실행 중 오류가 발생하였습니다.
Invalid use of group function
이런 에러 메세지가 뜰 겁니다. 어떤 그룹에 최대값인지를 명시해 주지 않았죠?
몇 반의 최대값이라는거야! 이렇게 되는 겁니다.
[ 정답 코드 ]
SELECT FOOD_TYPE
,REST_ID
,REST_NAME
,FAVORITES
FROM REST_INFO
WHERE (FOOD_TYPE,FAVORITES) IN
(SELECT FOOD_TYPE,MAX(FAVORITES) FROM REST_INFO GROUP BY FOOD_TYPE)
ORDER BY FOOD_TYPE DESC;
- 왜 그렇게 해야하나요? 이건 왜 안되나요??
코드 A
SELECT FOOD_TYPE
,REST_ID
,REST_NAME
,MAX(FAVORITES) AS FAVORITES
FROM REST_INFO
GROUP BY FOOD_TYPE
ORDER BY FOOD_TYPE DESC;
차이는 일식에서 난다! 식당명 (REST_NAME)이 다르다.
코드 A로 하면 각 MAX인 즐겨찾기 값은 뽑아주지만 그에 맞는 식당을 뽑아주는 게 아니라 순서대로 매칭한다.
결국 MAX인 값은 그룹화 해주어야하는것, 어디에서 맥스인지 명시!
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
SELECT MEMBER_ID
,MEMBER_NAME
,GENDER
,DATE_OF_BIRTH
FROM MEMBER_PROFILE
WHERE MONTH(DATE_OF_BIRTH)= '03' AND TLNO IS NOT NULL AND GENDER = 'W'
ORDER BY MEMBER_ID
조건별로 분류하여 주문상태 출력하기
SELECT ORDER_ID
,PRODUCT_ID
,OUT_DATE
,(CASE WHEN OUT_DATE <= '2022-05-01' THEN '출고완료'
WHEN OUT_DATE > '2022-05-01' THEN '출고대기'
ELSE '출고미정'END)AS 출고여부
FROM FOOD_ORDER
ORDER BY ORDER_ID ASC
SELECT CATEGORY
,PRICE AS MAX_PRICE
,PRODUCT_NAME
FROM FOOD_PRODUCT
WHERE (CATEGORY,PRICE) IN (SELECT CATEGORY, MAX(PRICE) FROM FOOD_PRODUCT GROUP BY CATEGORY)
AND CATEGORY IN ('과자','국','김치','식용유')
ORDER BY PRICE DESC
- 흔하게 하는 실수 WHERE AND WHERE 아니잖아~~
'SQL > HackerRank,프로그래머스' 카테고리의 다른 글
프로그래머스 입양 시각 구하기 (2) (0) | 2023.10.24 |
---|---|
프로그래머스 조건에 맞는 사용자 정보 조회하기,조회수가 가장 많은 중고거래 게시판의 첨부파일 조회하기 (Mysql) (0) | 2023.03.19 |
[HackerRank] The PADS 문제풀이 MSsql (0) | 2022.06.13 |
[HackerRank] Symmetric Pairs mysql (0) | 2022.05.22 |
[HackerRank] SQL Project Planning mysql 문제 풀이 (0) | 2022.05.20 |
블로그의 정보
다람
darami