아직 입양을 못 간 동물 중, 가장 오래 보호소에 있었던 동물 3마리의 이름과 보호 시작일을 조회하는 SQL문을 작성해주세요. 이때 결과는 보호 시작일 순으로 조회해야 합니다.
#left join 구문으로 입양날짜 데이터가 없는 동물만 필터링 SELECT i.name, i.datetime from animal_ins i left join animal_outs o on i.animal_id=o.animal_id where o.datetime is null order by 2 limit 3
2022년 1월의 카테고리 별 도서 판매량을 합산하고, 카테고리(CATEGORY), 총 판매량(TOTAL_SALES) 리스트를 출력하는 SQL문을 작성해주세요.
결과는 카테고리명을 기준으로 오름차순 정렬해주세요.SELECT category, sum(sales) "TOTAL_SALES" from book b inner join book_sales s on b.book_id = s.book_id where date_format(s.sales_date, '%Y%m')=202201 group by 1 order by 1
PRODUCT 테이블과 OFFLINE_SALE 테이블에서 상품코드 별 매출액(판매가 * 판매량) 합계를 출력하는 SQL문을 작성해주세요. 결과는 매출액을 기준으로 내림차순 정렬해주시고 매출액이 같다면 상품코드를 기준으로 오름차순 정렬해주세요.
SELECT product_code "상품코드", sum(o.sales_amount * p.price) "매출액" from product p inner join offline_sale o on p.product_id=o.product_id group by 1 order by 2 desc, 1
관리자의 실수로 일부 동물의 입양일이 잘못 입력되었습니다. 보호 시작일보다 입양일이 더 빠른 동물의 아이디와 이름을 조회하는 SQL문을 작성해주세요. 이때 결과는 보호 시작일이 빠른 순으로 조회해야합니다.
SELECT i.animal_id, i.name from animal_ins i inner join animal_outs o on i.animal_id = o.animal_id where i.datetime > o.datetime order by i.datetime
입양을 간 동물 중, 보호 기간이 가장 길었던 동물 두 마리의 아이디와 이름을 조회하는 SQL문을 작성해주세요. 이때 결과는 보호 기간이 긴 순으로 조회해야 합니다.
SELECT i.animal_id, i.name from animal_ins i inner join animal_outs o on i.animal_id=o.animal_id order by o.datetime-i.datetime desc limit 2
보호소에서 중성화 수술을 거친 동물 정보를 알아보려 합니다. 보호소에 들어올 당시에는 중성화1되지 않았지만, 보호소를 나갈 당시에는 중성화된 동물의 아이디와 생물 종, 이름을 조회하는 아이디 순으로 조회하는 SQL 문을 작성해주세요.
SELECT i.animal_id, i.animal_type, i.name from animal_ins i inner join animal_outs o on i.animal_id = o.animal_id where i.SEX_UPON_INTAKE like '%Intact%' and o.SEX_UPON_OUTCOME not like '%Intact%' order by 1
'경제' 카테고리에 속하는 도서들의 도서 ID(BOOK_ID), 저자명(AUTHOR_NAME), 출판일(PUBLISHED_DATE) 리스트를 출력하는 SQL문을 작성해주세요.
결과는 출판일을 기준으로 오름차순 정렬해주세요.SELECT b.book_id, a.author_name, date_format(b.published_date,'%Y-%m-%d') from book b left join author a on b.author_id=a.author_id where b.category="경제" order by 3FOOD_ORDER 테이블에서 5월 1일을 기준으로 주문 ID, 제품 ID, 출고일자, 출고여부를 조회하는 SQL문을 작성해주세요. 출고여부는 5월 1일까지 출고완료로 이 후 날짜는 출고 대기로 미정이면 출고미정으로 출력해주시고, 결과는 주문 ID를 기준으로 오름차순 정렬해주세요.
SELECT order_id, product_id, date_format(out_date, '%Y-%m-%d'), case when date_format(out_date, '%Y%m%d') <= 20220501 then '출고완료' when date_format(out_date, '%Y%m%d') > 20220501 then '출고대기' else '출고미정' end "출고여부" from food_order order by 1
상반기 동안 각 아이스크림 성분 타입과 성분 타입에 대한 아이스크림의 총주문량을 총주문량이 작은 순서대로 조회하는 SQL 문을 작성해주세요. 이때 총주문량을 나타내는 컬럼명은 TOTAL_ORDER로 지정해주세요.
SELECT i.INGREDIENT_TYPE, sum(f.total_order) "TOTAL_ORDER" from first_half f inner join icecream_info i on f.flavor=i.flavor group by 1 order by 2
동물 보호소에 들어온 동물 중 이름이 Lucy, Ella, Pickle, Rogan, Sabrina, Mitty인 동물의 아이디와 이름, 성별 및 중성화 여부를 조회하는 SQL 문을 작성해주세요.
SELECT animal_id, name, sex_upon_intake from animal_ins where name in ('Lucy', 'Ella', 'Pickle','Rogan', 'Sabrina','Mitty')
BOOK 테이블에서 2021년에 출판된 '인문' 카테고리에 속하는 도서 리스트를 찾아서 도서 ID(BOOK_ID), 출판일 (PUBLISHED_DATE)을 출력하는 SQL문을 작성해주세요.
결과는 출판일을 기준으로 오름차순 정렬해주세요.SELECT book_id, date_format(published_date, '%Y-%m-%d') FROM book where date_format(published_date, '%Y') = 2021 and category = '인문' order by 2
CAR_RENTAL_COMPANY_CAR 테이블에서 자동차 종류가 'SUV'인 자동차들의 평균 일일 대여 요금을 출력하는 SQL문을 작성해주세요. 이때 평균 일일 대여 요금은 소수 첫 번째 자리에서 반올림하고, 컬럼명은 AVERAGE_FEE 로 지정해주세요.
SELECT round(avg(daily_fee),0) "AVERAGE_FEE" from car_rental_company_car where car_type = 'SUV'
USED_GOODS_BOARD와 USED_GOODS_USER 테이블에서 완료된 중고 거래의 총금액이 70만 원 이상인 사람의 회원 ID, 닉네임, 총거래금액을 조회하는 SQL문을 작성해주세요. 결과는 총거래금액을 기준으로 오름차순 정렬해주세요.
#having sum 구문 SELECT u.user_id, u.nickname, sum(b.price) "TOTAL_PRICE" from used_goods_board b left join used_goods_user u on b.writer_id = u.user_id where b.status = 'DONE' group by u.user_id having sum(b.price)>= 700000 order by 3
PRODUCT 테이블에서 만원 단위의 가격대 별로 상품 개수를 출력하는 SQL 문을 작성해주세요. 이때 컬럼명은 각각 컬럼명은 PRICE_GROUP, PRODUCTS로 지정해주시고 가격대 정보는 각 구간의 최소금액(10,000원 이상 ~ 20,000 미만인 구간인 경우 10,000)으로 표시해주세요. 결과는 가격대를 기준으로 오름차순 정렬해주세요.
###case when 구문으로 작성하여 정답은 맞으나 모든 구간을 이렇게 쓸 수는 없을 것 같다. SELECT case when price between 0 and 9999 then 0 when price between 10000 and 19999 then 10000 when price between 20000 and 29999 then 20000 when price between 30000 and 39999 then 30000 when price between 40000 and 49999 then 40000 when price between 50000 and 59999 then 50000 when price between 60000 and 69999 then 60000 when price between 70000 and 79999 then 70000 when price between 80000 and 89999 then 80000 when price between 80000 and 99999 then 90000 end "PRICE_GROUP", count(price) "PRODUCTS" from product group by 1 order by 1#정답지를 보니, floor구문 사용. # >>> FLOOR 함수는 소수점 첫째 자리에서 버림하는 함수로, 주어진 숫자와 가장 근접한 작은 정수를 출력한다. SELECT FLOOR(price/10000)*10000 PRICE_GROUP ,count(price) PRODUCTS from product group by 1 order by 1