본문 바로가기

전체 글

Spring Boot init.sql.mode 사용시 쿼리 누락 문제(주석) 인텔리제이로 팀 프로젝트를 진행하던 때 mysql 더미 데이터를 만들어 init.sql.mode로 실행할 때 삽입하는 작업을 진행하고 있었다. 그러다가 하나의 쿼리문이 실행되지 않는 문제가 발생했다. 사진으로 예를 들자면 위의 visa 테이블의 D-2 Tuple이 삽입되지 않는 문제 였다. 순간의 오류인가 싶어 인텔리제이를 재시작해보기도하고, 데이터베이스를 다시 로드해보기도 했으며, 코드의 위치를 바꿔보기도했다. 그러나 오류가 해결이 되지 않았다. 이리저리 시도하던 중 몇 가지 이상함을 발견했다. 1. H-2와 D-2의 순서를 바꾸면 H-2가 안나오고 E-9와 바꾸면 E-9가 안나왔다. (즉 첫 순서의 쿼리가 나오지 않았다.) 2. 각 테이블의 첫 쿼리들이 전부 들어가지 않았다. 3. 작성 쿼리의 일부를.. 더보기
진료과별 총 예약 횟수 출력하기 https://school.programmers.co.kr/learn/courses/30/lessons/132202?language=mysql - APPOINTMENT 테이블에서 진료과코드별 진료과코드와 5월 예약건수를 조회한다. 단, 2022년 5월의 기록이어야하며 각각의 컬럼명이 '진료과 코드', '5월예약건수'이어야한다. 결과는 환자수 기준 오름차, 진료과 코드 기준 오름차 정렬한다. 1. 진로 예약일이 5월인 값들만 조회한다. 2. 해당 값들을 진료과 별로 그룹핑한다. 3. 진료과코드와 count함수를 이용한 갯수를 조회한다. - SQL mysql : SELECT mcdp_cd as "진료과 코드", count(*) AS "5월예약건수" FROM APPOINTMENT WHERE MONTH(apnt.. 더보기
대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기 https://school.programmers.co.kr/learn/courses/30/lessons/151139 - CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블의 월별 자동차 id 별 총 대여횟수를 출력한다. 단. 대여시작일 기준 2022년 8월 부터 10월까지 대여횟수가 5회 이상인 자동차들에 한해서이다. 또한 결과를 월을 기준 오름차, 자동자 id 기준 내림차 정렬한다. 1. id별로 그룹핑한 8월부터 10월까지의 기록을 조회한다. 2. 대여 횟수가 5회 이상인 기록으로 조건절을 건 car_id만 출력한다. 3. 해당 결과에 해당하는 car_id를 가지고 8월 ~ 10월의 기록을 출력한다. - SQL mysql : SELECT MONTH(START_DATE), CAR_ID,.. 더보기
자동차 종류 별 특정 옵션이 포함된 자동차 수 구하기 https://school.programmers.co.kr/learn/courses/30/lessons/151137 - CAR_RENTAL_COMPANY_CAR 테이블의 자동차 종류별 수를 조회한다. 단, 통풍시트, 열선시트, 가죽시트 중 하나 이상 옵션이 포함된 자동차여야한다. 또한 자동차 수의 컬럼명은 CARS이고 결과를 종류 기준 오름차 정렬한다. 1. car_type 기준 그룹핑한다. 2. options를 like를 사용ㅎ여 통풍시트 가죽시트 열선시트 중 하나라도 있는지 확인한다. - SQL SELECT car_type, count(*) FROM CAR_RENTAL_COMPANY_CAR WHERE options LIKE '%통풍시트%' OR options LIKE '%가죽시트%' OR option.. 더보기
자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기 https://school.programmers.co.kr/learn/courses/30/lessons/157340 - CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블에서 자동차ID와 자동차 대여여부를 출력한다 단, 대여여부는 2022년 10월 16일에 대여중인 자동차를 대여 중, 아니면 대여가능으로 표시해주고 AVAILABILITY로 표기한다. 또한 반납 날짜가 10월 16일일 경우에도 대여중으로 표기하고 결과를 자동차 id 기준 내림차 정렬한다. 1. car_id 기준으로 그룹핑한다. 2.. case 문으로 시작일이 10월 16일 보다 작거나 종료일이 16일보다 큰 id를 뽑아서 그 값에 속하는 car_id를 대여중 아닌것을 대여 가능으로 출력한다. - SQL mysql : SEL.. 더보기
성분으로 구분한 아이스크림 총 주문량 https://school.programmers.co.kr/learn/courses/30/lessons/133026 - FIRST_HALF, ICECREAM_INFO 테이블의 아이스크림 성분 타입과 아이스크림의 총 주문량으로 조회한다. 단, 총 주문량 기준 오름차 정렬하며 컬럼명을 total_order로 지정한다. 1. 두 테이블을 flavor 기준 조인하고 ingredient_type을 기준으로 그룹핑한다. 2. 그룹핑한 테이블에 SUM 함수로 total_order를 계산해서 조회한다. - SQL SELECT ingredient_type, sum(total_order) total_order FROM FIRST_HALF half, ICECREAM_INFO info WHERE info.flavor = ha.. 더보기
저자 별 카테고리 별 매출액 집계하기 https://school.programmers.co.kr/learn/courses/30/lessons/144856 - BOOK, AUTHOR, BOOK_SALES 테이블의 저자id, 저자명, 카테고리, 매출액을 조회한다. 단, 2022년 1월 판매 데이터를 기준으로 저자별, 카테고리별 매출액을 구할 것이며, 저자id 기준 오름차, 카테고리 기준 내림차 정렬한다. 1. 2022년 1월의 판매 데이터를 뽑아낸다. 이후 book_id를 기준으로 book과 book_sales 테이블을 조인한다. 2. 카테고리 저자ID 두 값을 기준으로 그룹핑하여 sum 함수를 사용해 그룹별 총 매출액을 구한다. 3. 그룹핑한 테이블과 AUTHOR 테이블을 author_id를 기준으로 조인하여 필요 값을 조인한다. - SQL .. 더보기
즐겨찾기가 가장 많은 식당 정보 출력하기 https://school.programmers.co.kr/learn/courses/30/lessons/131123 - REST_INFO 테이블에서 음식 종류, id, 식당이름, 즐겨찾기 수를 조회한다. 단, 음식 종류별 즐겨찾기 수가 가장 많은 식당의 것을 출력하며 음식 종류 기준 내림차 정렬한다. 1. food_type 기준으로 그룹핑해서 food_type과 max(favorites)를 뽑아낸다. 2. 뽑아낸 값에 해당하는 음식별 값들을 추출한다. - SQL SELECT food_type, rest_id, rest_name, favorites FROM REST_INFO WHERE (food_type, favorites) IN (SELECT food_type, MAX(favorites) FAVORITE.. 더보기