Day43

강태훈·2026년 3월 4일

nbcamp TIL

목록 보기
43/58

코드카타

과일로 만든 아이스크림 고르기

SELECT F.FLAVOR
FROM FIRST_HALF F
JOIN ICECREAM_INFO I
ON F.FLAVOR = I.FLAVOR
WHERE F.TOTAL_ORDER >= 3000
AND I.INGREDIENT_TYPE LIKE 'fruit_based'
ORDER BY F.TOTAL_ORDER DESC
;

조건에 맞는 사용자 정보 조회하기

SELECT U.USER_ID, U.NICKNAME, 
CONCAT_WS(' ', CITY, STREET_ADDRESS1, STREET_ADDRESS2) AS 전체주소,
CONCAT(SUBSTRING(TLNO,1,3), '-', SUBSTRING(TLNO,4,4), '-', SUBSTRING(TLNO,8,4)) AS 전화번호
FROM USED_GOODS_USER U
JOIN USED_GOODS_BOARD B
ON B.WRITER_ID = U.USER_ID
GROUP BY U.USER_ID
HAVING COUNT(B.BOARD_ID) >= 3
ORDER BY U.USER_ID DESC
;
  • CONCAT(필드명, 필드명2....): 문자열을 합칠 때 사용
  • SELECT절에서 필드명 + 필드명으로도 합칠 수 있다.
  • CONCAT_WS(' ' , 필드명, 필드명2....): 공백을 넣고 문자열을 합칠 때 사용
  • SUBSTRING(필드명, 시작위치, 자를길이): 문자열을 잘라서 사용
WITH CNT_REVIEW AS(
    SELECT WRITER_ID
            ,COUNT(WRITER_ID) CNT
    FROM USED_GOODS_BOARD
    GROUP BY WRITER_ID
    HAVING CNT>= 3 )
    
SELECT USER_ID
        ,NICKNAME
        ,CONCAT_WS(' ',CITY,STREET_ADDRESS1, STREET_ADDRESS2) AS 전체주소
        ,CONCAT(SUBSTRING(TLNO, 1, 3), '-', -- 앞자리 (010)
              SUBSTRING(TLNO, 4, 4), '-',   -- 가운데자리 (1234)
              SUBSTRING(TLNO, 8, 4)) AS 전화번호 -- 뒷자리 (5678)
FROM USED_GOODS_USER 
WHERE USER_ID IN (SELECT WRITER_ID FROM CNT_REVIEW) -- 리뷰 3개 이상인 아이디
ORDER BY USER_ID DESC
  • 이와 같이 WITH절을 활용할 수도 있다

특정 옵션이 포함된 자동차 리스트 구하기

SELECT *
FROM CAR_RENTAL_COMPANY_CAR 
WHERE OPTIONS LIKE '%네비게이션%'
ORDER BY CAR_ID DESC
;

조건에 부합하는 중고거래 상태 조회하기

SELECT BOARD_ID, WRITER_ID, TITLE, PRICE,
CASE WHEN STATUS LIKE 'SALE' THEN '판매중'
     WHEN STATUS LIKE 'RESERVED' THEN '예약중'
     WHEN STATUS LIKE 'DONE' THEN '거래완료'
END AS STATUS
FROM USED_GOODS_BOARD 
WHERE YEAR(CREATED_DATE) = 2022
AND MONTH(CREATED_DATE) = 10
AND DAY(CREATED_DATE) = 5
ORDER BY BOARD_ID DESC
;

과제 진행 사항

0개의 댓글