본문 바로가기
728x90

SQL37

SQL 71-76. 71. 오프라인/온라인 판매 데이터 통합하기 ONLINE_SALE 테이블과 OFFLINE_SALE 테이블에서 2022년 3월의 오프라인/온라인 상품 판매 데이터의 판매 날짜, 상품ID, 유저ID, 판매량을 출력하는 SQL문을 작성해주세요. OFFLINE_SALE 테이블의 판매 데이터의 USER_ID 값은 NULL 로 표시해주세요. 결과는 판매일을 기준으로 오름차순 정렬해주시고 판매일이 같다면 상품 ID를 기준으로 오름차순, 상품ID까지 같다면 유저 ID를 기준으로 오름차순 정렬 select date_format(sales_date, '%Y-%m-%d') as sales_date, product_id, user_id, sales_amountfrom online_salewhe.. 2025. 6. 9.
SQL 69-70. 69. 대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기 CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블에서 대여 시작일을 기준으로 2022년 8월부터 2022년 10월까지 총 대여 횟수가 5회 이상인 자동차들에 대해서 해당 기간 동안의 월별 자동차 ID 별 총 대여 횟수(컬럼명: RECORDS) 리스트를 출력하는 SQL문을 작성해주세요. 결과는 월을 기준으로 오름차순 정렬하고, 월이 같다면 자동차 ID를 기준으로 내림차순 정렬해주세요. 특정 월의 총 대여 횟수가 0인 경우에는 결과에서 제외 select month(start_date) as month, car_id, count(*) as recordsfrom car_rental_company_rental_his.. 2025. 6. 5.
SQL 66-68. 66. 조회수가 가장 많은 중고거래 게시판의 첨부파일 조회 USED_GOODS_BOARD와 USED_GOODS_FILE 테이블에서 조회수가 가장 높은 중고거래 게시물에 대한 첨부파일 경로를 조회하는 SQL문을 작성해주세요. 첨부파일 경로는 FILE ID를 기준으로 내림차순 정렬해주세요. 기본적인 파일경로는 /home/grep/src/ 이며, 게시글 ID를 기준으로 디렉토리가 구분되고, 파일이름은 파일 ID, 파일 이름, 파일 확장자로 구성되도록 출력해주세요. 조회수가 가장 높은 게시물은 하나만 존재 select concat("/home/grep/src/", b.board_id, "/", f.file_id, f.file_name, f.file_ext) as file_pathfrom used_goods_bo.. 2025. 6. 4.
SQL 61-65. 61. 서울에 위치한 식당 목록 출력하기문제 REST_INFO와 REST_REVIEW 테이블에서 서울에 위치한 식당들의 식당 ID, 식당 이름, 음식 종류, 즐겨찾기수, 주소, 리뷰 평균 점수를 조회하는 SQL문을 작성해주세요. 이때 리뷰 평균점수는 소수점 세 번째 자리에서 반올림 해주시고 결과는 평균점수를 기준으로 내림차순 정렬해주시고, 평균점수가 같다면 즐겨찾기수를 기준으로 내림차순 정렬 select i.rest_id, i.rest_name, i.food_type, i.favorites, i.address, round(avg(r.review_score), 2) as scorefrom rest_info i join rest_review r on i... 2025. 6. 2.
SQL 56-60. 56. 특정 옵션이 포함된 자동차 리스트 구하기 CAR_RENTAL_COMPANY_CAR 테이블에서 '네비게이션' 옵션이 포함된 자동차 리스트를 출력하는 SQL문을 작성해주세요. 결과는 자동차 ID를 기준으로 내림차순 정렬 select car_id, car_type, daily_fee, optionsfrom car_rental_company_carwhere options like '%네비게이션%'order by car_id desc★ 출제포인트like 를 써서 네비게이션이 있는지 확인 57. 조건에 부합하는 중고거래 상태 조회하기 USED_GOODS_BOARD 테이블에서 2022년 10월 5일에 등록된 중고거래 게시물의 게시글 ID, 작성자 ID, 게시글 제목, 가격, 거.. 2025. 5. 30.
SQL 51-55. 51. 없어진 기록 찾기 천재지변으로 인해 일부 데이터가 유실되었습니다. 입양을 간 기록은 있는데, 보호소에 들어온 기록이 없는 동물의 ID와 이름을 ID 순으로 조회하는 SQL문을 작성 select o.animal_id, o.namefrom animal_outs o left join animal_ins i on o.animal_id = i.animal_idwhere i.animal_id is nullorder by animal_id★ 출제포인트outs에는 정보가 있는데, ins에는 정보가 없는 항목을 찾아야 하므로 outs를 기준으로 left join 해야 함 52. 과일로 만든 아이스크림 고르기 상반기 아이스크림 총주문량이 3,000보다 높으면서 아이스크림의 주 성분이 과일인 아이스크림의 맛을 총주.. 2025. 5. 30.
SQL 46-50. 46. 대여 기록이 존재하는 자동차 리스트 구하기 CAR_RENTAL_COMPANY_CAR 테이블과 CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블에서 자동차 종류가 '세단'인 자동차들 중 10월에 대여를 시작한 기록이 있는 자동차 ID 리스트를 출력하는 SQL문을 작성해주세요. 자동차 ID 리스트는 중복이 없어야 하며, 자동차 ID를 기준으로 내림차순 정렬 46-1. inner join, distinctselect distinct c.car_idfrom car_rental_company_car c join car_rental_company_rental_history h on c.car_id = h.car_idwhere c.car_type = '세단' and month(h.start_.. 2025. 5. 30.
SQL 41-45. 41. 조건에 맞는 도서 리스트 출력하기 BOOK 테이블에서 2021년에 출판된 '인문' 카테고리에 속하는 도서 리스트를 찾아서 도서 ID(BOOK_ID), 출판일 (PUBLISHED_DATE)을 출력하는 SQL문을 작성해주세요. 결과는 출판일을 기준으로 오름차순 정렬select book_id, date_format(published_date, '%Y-%m-%d') as published_datefrom bookwhere year(published_date) = 2021 and category = '인문'order by published_date★ 출제포인트데이터 타입 및 포맷where로 조건 필터링order by로 출판일 오름차순 정렬 42. 평균 일일 대여 요금 구하기 CAR_RENTAL_.. 2025. 5. 30.
SQL 36-40. 36. 보호소에서 중성화한 동물 보호소에서 중성화 수술을 거친 동물 정보를 알아보려 합니다. 보호소에 들어올 당시에는 중성화1되지 않았지만, 보호소를 나갈 당시에는 중성화된 동물의 아이디와 생물 종, 이름을 조회하는 아이디 순으로 조회하는 SQL 문을 작성 select i.animal_id, i.animal_type, i.namefrom animal_ins i inner join animal_outs o on i.animal_id = o.animal_idwhere i.sex_upon_intake like '%intact%' and (o.sex_upon_outcome like '%neutered%' or o.sex_upon_outcome like '%spayed%')order by i.. 2025. 5. 29.
SQL 31-35. 31. 오랜 기간 보호한 동물아직 입양을 못 간 동물 중, 가장 오래 보호소에 있었던 동물 3마리의 이름과 보호 시작일을 조회하는 SQL문을 작성해주세요. 이때 결과는 보호 시작일 순으로 조회해야 합니다. select ins.name, ins.datetimefrom animal_ins ins left join animal_outs outs on ins.animal_id = outs.animal_idwhere outs.animal_id is nullorder by datetime asclimit 3★ 중요 (출제 포인트)left join 사용order by datetime asc 보호 시작일 순 정렬limit 3 상위 3개 결과만 출력 32. 카테고리별 도서 판매량 집계하기 2022년 1월의 카.. 2025. 5. 28.
SQL 26-30. 26. 입양 시각 구하기 보호소에서는 몇 시에 입양이 가장 활발하게 일어나는지 알아보려 합니다. 09:00부터 19:59까지, 각 시간대별로 입양이 몇 건이나 발생했는지 조회하는 SQL문을 작성해주세요. 이때 결과는 시간대 순으로 정렬1. hourselect hour(datetime) as hour, count(*)from animal_outswhere hour(datetime) between 09 and 19group by hour(datetime)order by hour(datetime) 2. date_formatselect date_format(datetime, '%H') as hour, count(*)from animal_outswhere date_format(datetime.. 2025. 5. 27.
SQL 22-25. 22. 조건에 맞는 회원수 구하기 USER_INFO 테이블에서 2021년에 가입한 회원 중 나이가 20세 이상 29세 이하인 회원이 몇 명인지 출력하는 SQL문을 작성 select count(*) as usersfrom user_infowhere year(joined) = 2021 and age between 20 and 29★ 중요between 1 and 2 = 1이상 2이하 = 1, 2 임 23. 중성화 여부 파악하기 보호소의 동물이 중성화되었는지 아닌지 파악하려 합니다. 중성화된 동물은 SEX_UPON_INTAKE 컬럼에 'Neutered' 또는 'Spayed'라는 단어가 들어있습니다. 동물의 아이디와 이름, 중성화 여부를 아이디 순으로 조회하는 SQL문을 작성해주세요. 이때 중성화가 되어있다면 '.. 2025. 5. 26.
SQL 19-21. 19. 흉부외과 또는 일반외과 의사 목록 출력하기 DOCTOR 테이블에서 진료과가 흉부외과(CS)이거나 일반외과(GS)인 의사의 이름, 의사ID, 진료과, 고용일자를 조회하는 SQL문을 작성해주세요. 이때 결과는 고용일자를 기준으로 내림차순 정렬하고, 고용일자가 같다면 이름을 기준으로 오름차순 정렬.select dr_name, dr_id, mcdp_cd, date_format(hire_ymd, '%Y-%m-%d') as hire_ymdfrom doctorwhere mcdp_cd in ('CS', 'GS')order by hire_ymd desc, dr_name asc20. 가격이 가장 비싼 식품의 정보 출력하기 FOOD_PRODUCT 테이블에서 가격이 제일 비싼 식품의 식.. 2025. 5. 23.
SQL 16-18. 16. 경기도에 위치한 식품창고 목록 출력하기경기도에 위치한 창고의 ID, 이름, 주소, 냉동시설 여부를 조회하는 SQL문을 작성해주세요. 이때 냉동시설 여부가 NULL인 경우, 'N'으로 출력시켜 주시고 결과는 창고 ID를 기준으로 오름차순 정렬 IFNULLselect warehouse_id, warehouse_name, address, ifnull(freezer_yn, 'N')from food_warehousewhere address like '%경기도%'order by warehouse_idCASE WHENselect warehouse_id, warehouse_name, address, case when freeze.. 2025. 5. 22.
SQL 13-15. 13. 나이 정보가 없는 회원 수 구하기 나이 정보가 없는 회원이 몇 명인지 출력하는 SQL문을 작성해주세요. 이때 컬럼명은 USERS로 지정 select count(*) as usersfrom user_infowhere age is null 참고: is not null / , != '단어' 14. 가장 비싼 상품 구하기 판매 중인 상품 중 가장 높은 판매가를 출력하는 SQL문을 작성해주세요. 이때 컬럼명은 MAX_PRICE로 지정select max(price) as max_pricefrom product 15. NULL처리하기 동물의 생물 종, 이름, 성별 및 중성화 여부를 아이디 순으로 조회하는 SQL문을 작성해주세요. 이때 프로그래밍을 모르는 사람들은 NULL이라는 기호를 모르기 때문에, 이름이 .. 2025. 5. 21.
SQL 10-12. 10. 어린 동물 찾기 동물 보호소에 들어온 동물 중 젊은 동물1의 아이디와 이름을 조회하는 SQL 문을 작성. 이때 결과는 아이디 순으로 조회 select animal_id, namefrom animal_inswhere intake_condition 'aged'order by 'animal_id' 참고: is not null / , != '단어' 11. 여러 기준으로 정렬하기 동물 보호소에 들어온 모든 동물의 아이디와 이름, 보호 시작일을 이름 순으로 조회하는 SQL문을 작성. 단, 이름이 같은 동물 중에서는 보호를 나중에 시작한 동물을 먼저 보여줘야 select animal_id, name, datetimefrom animal_insorder by name, dat.. 2025. 5. 20.
SQL 7-9 7. 아픈 동물 찾기동물 보호소에 들어온 동물 중 아픈 동물1의 아이디와 이름을 조회하는 SQL 문을 작성해주세요. 이때 결과는 아이디 순으로 조회select animal_id, namefrom animal_inswhere intake_condition = 'sick'order by animal_id 참고 : intak_condition = '%sick%'으로 하면 안 뜸 8. 상위 n개 레코드 동물 보호소에 가장 먼저 들어온 동물의 이름을 조회하는 SQL 문을 작성풀이1 - order by 와 limitselect namefrom animal_insorder by datetime asclimit 1 풀이2 - rank() over 와 limitselect namefrom(select name.. 2025. 5. 19.
SQL 4-6 4. 동물의 아이디와 이름 동물 보호소에 들어온 모든 동물의 아이디와 이름을 ANIMAL_ID순으로 조회하는 SQL문을 작성. SQL을 실행하면 다음과 같이 출력.select animal_id, namefrom animal_insorder by animal_id 5. 동물 수 구하기동물 보호소에 동물이 몇 마리 들어왔는지 조회하는 SQL 문을 작성. SQL을 실행하면 다음과 같이 출력.select count(animal_type)from animal_ins 6. 동명 동물 수 찾기 동물 보호소에 들어온 동물 이름 중 두 번 이상 쓰인 이름과 해당 이름이 쓰인 횟수를 조회하는 SQL문을 작성해주세요. 이때 결과는 이름이 없는 동물은 집계에서 제외하며, 결과는 이름 순으로 조회.select name, .. 2025. 5. 16.
SQL 1-3 이름이 있는 동물의 아이디 동물 보호소에 들어온 동물 중, 이름이 있는 동물의 ID를 조회하는 SQL 문을 작성해주세요. 단, ID는 오름차순 정렬되어야 합니다. select animal_idfrom animal_inswhere name is not nullorder by animal_id asc 역순 정렬하기 동물 보호소에 들어온 모든 동물의 이름과 보호 시작일을 조회하는 SQL문을 작성해주세요. 이때 결과는 ANIMAL_ID 역순으로 보여주세요. SQL을 실행하면 다음과 같이 출력되어야 합니다.select name, datetimefrom animal_insorder by animal_id desc 중복 제거하기 동물 보호소에 들어온 동물의 이름은 몇 개인지 조회하는 SQL 문을 작성해.. 2025. 5. 15.
★SQL 내용정리 ■ SQL과 데이터 조회1. MySQL 구문# 한 줄 주석-- 한 줄 주석/* 두 줄 이상 주석 처리 */ 2. USE & SHOW데이터베이스 내 테이블을 보여주는 명령어USE 데이터베이스명SHOW Tables; 3. SELECT데이터베이스 내 테이블을 보여주는 명령어-- 1. 전체select * from payment;-- 2.특정 컬럼과 별칭select payment_date as date, last_update as updatefrom payment;-- 3. 중복값 제거 DISTINCTselect distinct last_name from actor; ■ WHERE 조건 검색1. 비교연산자문자나 날짜는 '(따옴표)' 써서 비교연산자설명.. 2025. 5. 14.
728x90