BOOK
테이블에서 2021년
에 출판된 '인문'
카테고리에 속하는 도서 리스트를 찾아서 도서 ID(BOOK_ID
), 출판일 (PUBLISHED_DATE
)을 출력하는 SQL문을 작성해주세요. 결과는 출판일을 기준으로 오름차순 정렬해주세요.제출한 코드 :
SELECT BOOK_ID
, DATE_FORMAT(PUBLISHED_DATE, '%Y-%m-%d') AS PUBLISHED_DATE
FROM BOOK
WHERE (PUBLISHED_DATE LIKE "%2021%")
AND (CATEGORY LIKE "%인문%")
ORDER BY PUBLISHED_DATE;
CAR_RENTAL_COMPANY_CAR
테이블에서 자동차 종류가 'SUV'인 자동차들의 평균 일일 대여 요금을 출력하는 SQL문을 작성해주세요. 이때 평균 일일 대여 요금은 소수 첫 번째 자리에서 반올림하고, 컬럼명은 AVERAGE_FEE
로 지정해주세요.제출한 코드 :
SELECT ROUND(AVG(DAILY_FEE), 0) AS AVERAGE_FEE
FROM CAR_RENTAL_COMPANY_CAR
WHERE CAR_TYPE IN("SUV");
다른 방법들(SELECT 이외의 부분은 모두 동일) :
TRUNCATE(컬럼명, 버릴 자릿수)
: 버림(일부 자릿수만을 유지)
: 두 번째 인자(버릴 자릿수)가 양수일 경우 소숫점 기준 오른쪽, 음수일 경우 왼쪽 버림
TRUNCATE(AVG(DAILY_FEE), 0)
CAST
: 데이터 유형을 다른 데이터 유형으로 변환할 때 사용
CAST(AVG(DAILY_FEE) AS INTEGER) #정수로 변환
USED_GOODS_BOARD
와 USED_GOODS_USER
테이블에서 완료된 중고 거래의 총금액이 70만 원 이상인 사람의 회원 ID, 닉네임, 총거래금액을 조회하는 SQL문을 작성해주세요. 결과는 총거래금액을 기준으로 오름차순 정렬해주세요.제출한 코드 :
SELECT U.USER_ID
, U.NICKNAME
, SUM(B.PRICE) AS "TOTAL_SALES"
FROM USED_GOODS_BOARD AS B
LEFT JOIN USED_GOODS_USER AS U
ON B.WRITER_ID = U.USER_ID # 작성자 ID가 곧 유저의 ID니이므로 조인 가능
WHERE B.STATUS IN("DONE")
GROUP BY U.USER_ID, U.NICKNAME
HAVING SUM(B.PRICE) >= 700000
ORDER BY TOTAL_SALES;
동일한 정보를 나타내는 경우에는 컬럼 이름이 다르더라도 조인할 수 있다.
PRODUCT
테이블에서 만원 단위의 가격대 별로 상품 개수를 출력하는 SQL 문을 작성해주세요. 이때 컬럼명은 각각 컬럼명은 PRICE_GROUP, PRODUCTS로 지정해주시고 가격대 정보는 각 구간의 최소금액(10,000원 이상 ~ 20,000 미만인 구간인 경우 10,000)으로 표시해주세요. 결과는 가격대를 기준으로 오름차순 정렬해주세요.제출한 코드 :
SELECT TRUNCATE(PRICE, -4) AS "PRICE_GROUP"
, COUNT(PRODUCT_ID) AS "PRODUCTS"
FROM PRODUCT
GROUP BY PRICE_GROUP
ORDER BY PRICE_GROUP;
다른 방법들(SELECT 이외의 부분은 모두 동일) :
TRUNCATE() 사용
TRUNCATE(PRICE, -4) AS "PRICE_GROUP"
FLOOR() 사용
: 인자로 전달된 숫자의 소수점 이하를 가장 가까운 정수로 반환하는 함수
FLOOR(PRICE/10000) * 10000 AS "PRICE_GROUP" /* (PRICE/10000)의 나머지는 버려지고 몫만 남게 되고, 결과적으로 그 몫에 다시 10000을 곱해주어 구간 나누기 */
DIV 사용
: 나눗셈을 수행한 후 소수점 이하를 버리고 정수 부분만을 반환하는 함수
(PRICE DIV 10000) * 10000 AS "PRICE_GROUP" /* PRICE를 10000으로 나눈 후 소수점 이하를 버리고, 그 결과에 다시 10000을 곱해주어 구간 나누기 */
% (나머지 연산자) 사용
: 왼쪽 피연산자를 오른쪽 피연산자로 나눈 후 나머지를 반환
(PRICE - (PRICE % 10000)) "PRICE_GROUP" /* PRICE를 10000으로 나눈 후의 나머지를 구하고, 이를 PRICE에서 빼는 연산을 수행 -> 이를 통해 PRICE 값을 10000의 배수에 가장 가까운 값으로 반올림 가능 */
제출한 코드 :
SELECT MEMBER_ID
, MEMBER_NAME
, GENDER
, DATE_FORMAT(DATE_OF_BIRTH, '%Y-%m-%d') AS "DATE_OF_BIRTH"
FROM MEMBER_PROFILE
WHERE DATE_FORMAT(DATE_OF_BIRTH, '%m') = '03'
AND TLNO IS NOT NULL
AND GENDER = 'W'
ORDER BY MEMBER_ID;
오늘의 TMI
아침부터 굉장히 바쁘고 정신없었다..........
액땜했다 치지 뭐ㅋㅋㅋ 그래도 큰 일은 아니어서 다행이랄까.
아 그리고 레이니75 취소 시키고 다른 키보드 샀다...^^ 더 마음에 들고 가격도 싸고 배송도 내일이면 오는 키보드를 발견했기 때문 키키
빨리 왔으면 좋겠다.