43. 조건에 맞는 사용자와 총 거래금액 조회하기
문제 링크:https://school.programmers.co.kr/learn/courses/30/lessons/164668
정답 코드:
SELECT
uu.USER_ID,
uu.NICKNAME,
SUM(ub.PRICE) AS TOTAL_SALES
FROM USED_GOODS_USER uu
INNER JOIN USED_GOODS_BOARD ub
ON ub.WRITER_ID = uu.USER_ID
WHERE STATUS = 'DONE'
GROUP BY uu.USER_ID
HAVING SUM(ub.PRICE) >= 700000
ORDER BY TOTAL_SALES ASC
문제 풀이때 했던 생각.
| 조건1. 완료된 중고 거래 조건2. 총거래금액이 70만원 이상 출력이 필요한 값: 회원 ID, 닉네임, 총거래금액 결과는 총거래금액을 기준으로 오름차순 정렬 서로 다른 테이블에 필요한 컬럼이 있기 때문에 테이블 join 필요 (INNER JOIN: 거래 기록이 존재하는 회원만 대상이기 때문에 INNER JOIN 사용) |
44. 가격대 별 상품 개수 구하기
문제 링크:https://school.programmers.co.kr/learn/courses/30/lessons/131530
정답 코드:
SELECT
FLOOR(PRICE / 10000) * 10000 AS PRICE_GROUP,
COUNT(*) AS PRODUCTS
FROM product
GROUP BY FLOOR(PRICE / 10000) * 10000
ORDER BY PRICE_GROUP;
문제 풀이때 했던 생각.
| 만원 단위의 가격대 별로 상품 개수를 출력하는 SQL 문 CASE WHEN으로 문제를 접근 가격대 정보는 각 구간별로 나눠서 CASE문 작성 |
## 오답
SELECT
CASE
WHEN PRICE < 10000 THEN 0
WHEN PRICE >= 10000 AND PRICE < 20000 THEN 10000
WHEN PRICE >= 20000 AND PRICE < 30000 THEN 20000
WHEN PRICE >= 30000 AND PRICE < 40000 THEN 30000
WHEN PRICE >= 40000 AND PRICE < 50000 THEN 40000
END AS PRICE_GROUP,
COUNT(*) AS PRODUCTS
FROM PRODUCT
GROUP BY PRICE_GROUP
ORDER BY PRICE_GROUP;
무엇이 잘못되었나?
| 가격의최대 구간이 존재하지 않아서 끊임없이 case문을 작성해야함. |
해결법
| 검색을 통해 수학 함수(FLOOR)를 발견 및 시행 FLOOR란? 소수점을 무조건 버리고 정수로 내림하는 함수 ROUND는 반올림이기 때문에 사용 불가능 |
45.3월에 태어난 여성 회원 목록 출력하기
문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/131120
정답 코드:
SELECT
MEMBER_ID,
MEMBER_NAME,
GENDER,
DATE_FORMAT(DATE_OF_BIRTH,'%Y-%m-%d') AS DATE_OF_BIRTH
FROM MEMBER_PROFILE
WHERE TLNO IS NOT NULL
AND DATE_OF_BIRTH LIKE "%-03-%"
AND GENDER = 'W'
ORDER BY MEMBER_ID ASC
문제 풀이때 했던 생각.
| 생일이 3월인 여성 회원 조건1 생일이 3월 조건2 여성 회원 조건3 전화번호가 NULL인 경우는 출력대상에서 제외 출력값 ID, 이름, 성별, 생년월일 회원ID를 기준으로 오름차순 정렬 |
'E.코드카타 > Level 3' 카테고리의 다른 글
| 코드카타 Level 3 다시 풀어보기 31~50 (1) | 2026.01.15 |
|---|---|
| 코드카타 Level 3 46, 48, 49, 50 (0) | 2026.01.09 |
| 코드카타 Level 3 39~42 (0) | 2026.01.07 |
| 코드카타 Level 3 34~38 (sql 복습시 참고) -나중에 서브쿼리로 풀어보기- (0) | 2026.01.06 |
| 코드카타 Level 3 1번~3번 (0) | 2026.01.05 |
