2025/10 31

프로그래머스 SQL 오답노트 Level 3 자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기

자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기 CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블에서 2022년 10월 16일에 대여 중인 자동차인 경우 '대여중' 이라고 표시하고, 대여 중이지 않은 자동차인 경우 '대여 가능'을 표시하는 컬럼(컬럼명: AVAILABILITY)을 추가하여 자동차 ID와 AVAILABILITY 리스트를 출력하는 SQL문을 작성해주세요. 이때 반납 날짜가 2022년 10월 16일인 경우에도 '대여중'으로 표시해주시고 결과는 자동차 ID를 기준으로 내림차순 정렬해주세요. 1. 문제 해석의 오류WITH A AS (SELECT * ,MAX(end_date) OVER (PARTITION BY CAR_ID ORDER BY end_date DESC) LA..

SQL 2025.10.14

프로그래머스 SQL 오답노트 Level 3 특정 조건을 만족하는 물고기별 수와 최대 길이 구하기

특정 조건을 만족하는 물고기별 수와 최대 길이 구하기 FISH_INFO에서 평균 길이가 33cm 이상인 물고기들을 종류별로 분류하여 잡은 수, 최대 길이, 물고기의 종류를 출력하는 SQL문을 작성해주세요. 결과는 물고기 종류에 대해 오름차순으로 정렬해주시고, 10cm이하의 물고기들은 10cm로 취급하여 평균 길이를 구해주세요. 컬럼명은 물고기의 종류 'FISH_TYPE', 잡은 수 'FISH_COUNT', 최대 길이 'MAX_LENGTH'로 해주세요. SELECT COUNT(FISH_TYPE) FISH_COUNT , MAX(LENGTH) MAX_LENGTH ,FISH_TYPEFROM FISH_INFOGROUP BY FISH_TYPEHAVING AVG(IFNULL(LENGTH,10)) >= 33ORDER..

SQL 2025.10.14

[아이티윌 빅데이터 52기] DBML 데이터 베이스 설계 실습

데이터 베이스 설계 실습[최종 산출물] 기존에 존재하는 데이터 명세서를 기준으로 vs code 에 ERD 를 그려보자 //학과 테이블Table departments { id int [pk,increment,note: "학과 번호"] dname varchar(100) [not null, note:"학과명"] loc varchar(100) [not null, note:"위치"] phone varchar(15) [not null, note:"전화번호"] email varchar(100) [not null, note:"이메일 주소"] established int [not null, note:"설립 연도"] homepage varchar(255) [not null..

[아이티윌 빅데이터 52기] Day 6 데이터 베이스 설계

데이터 베이스 설계-VS 코드 활용-ERD 기반 DB 설계-트랜잭션의 이해 IDE 의 이해 (Integrated Development Environment)통합 개발 환경으로 코딩, 디버그,컴파일,배포 등 프로그램 개발과 관련된 모든 작업을 하나의 프로그램에서 처리하는 환경을 제공하는 소프트웨어 *VS 코드 사용시에는 항상 나의 산출물을 저장할 폴더를 생성한 후 작업을 시작해야함나의 파일이 어디에 저장되고 있는지, 개인 파일 관리 신경써서 하기! 만들어진 파일에서 새 파일 + 확장자 제대로 지정해주기VS CODE 에서 만든 파일들은 실제 문서에 동일하게 저장 데이터 베이스의 설계 단계데이터 모델링의 3단계 1. 개념적 모델링-추상화 수준이 가장 높고, 구체화되기 이전 단계.-중요한 부분 위주로 모델..

프로그래머스 SQL 오답노트 Level 3 오랜 기간 보호한 동물 (2)

프로그래머스 SQL 오답노트오랜 기간 보호한 동물 (2) 입양을 간 동물 중, 보호 기간이 가장 길었던 동물 두 마리의 아이디와 이름을 조회하는 SQL문을 작성해주세요. 이때 결과는 보호 기간이 긴 순으로 조회해야 합니다. SELECT o.animal_id animal_id ,datediff(o.datetime, i.datetime) datediff FROM ANIMAL_INS i inner join animal_outs o on i.animal_id = o.animal_idorder by datediff desc datediff(o.datetime, i.datetime) datediff 를 select 절에서만 사용하려 했음.날짜 비교 구분은 where 절에서 바로 사용이 가능했음 SELECT o.a..

SQL 2025.10.14

[아이티윌 빅데이터 52기] Day 5 고급 데이터 조회 2 / 데이터 베이스 구축

고급 데이터 조회 2 / 데이터 베이스 구축-INNER/OUTER 외의 JOIN ( SELF JOIN ,EQUI JOIN ,CROSS JOIN)-서브쿼리 (단일행 / 다중행 / 스칼라 / 인라인뷰)-데이터 베이스 관리-테이블 관리 EQUI JOIN기본적으로 INNER JOIN 과 동일함ANSI SQL 은 모든 DBMS 가 따르는 표준적인 문법2개 이상의 테이블에서 데이터를 조회하면서, WHRER 절을 통해 JOIN 조건을 명시함FROM 절에는 , 를 기준으로 테이블 명시 JOIN 조건을 써준 후에 추가적인 필터링은 AND 로 이어줄 수 있음 CROSS JOINEQUI JOIN 에서 JOIN 조건이 제외된 경우 즉, 조합 가능한 모든 경우의 수가 생성 (카테시안곱) SELF JOIN하나의 테..

프로그래머스 SQL 오답노트 251010

프로그래머스 SQL 오답노트자동차 평균 대여기간 구하기문제: CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블에서 평균 대여 기간이 7일 이상인 자동차들의 자동차 ID와 평균 대여 기간(컬럼명: AVERAGE_DURATION) 리스트를 출력하는 SQL문을 작성해주세요. 평균 대여 기간은 소수점 두번째 자리에서 반올림하고, 결과는 평균 대여 기간을 기준으로 내림차순 정렬해주시고, 평균 대여 기간이 같으면 자동차 ID를 기준으로 내림차순 정렬해주세요. 틀린 이유: 대여 기간은 당일 하루 빌린것도 처리해야 하므로 날짜 계산 시 +1 계산SELECT CAR_ID, ROUND(AVG(DATEDIFF(END_dATE,START_dATE)+1),1) AVERAGE_DUR..

SQL 2025.10.10

[아이티윌 빅데이터 52기] Day 4 데이터 입력/수정/삭제/데이터 고급 조회 1

데이터 입력 / 수정 / 삭제 / 데이터 고급 조회 1-데이터 입력하기-데이터 수정/삭제-INNER JOIN / OUTER JOIN 데이터 입력하기(1) 데이터 저장하기 INSERT INTO-나열되는 컬럼 순서는 테이블 구조와 일치하지 않아도 괜찮음-VALUE 와 컬럼은 1:1 대응 필요 데이터의 무결정> 잘못된 데이터가 들어가는 것을 방지하고, 올바른 데이터만 유지되도록 보장하는 것> 무결성을 보장하기 위해 테이블 생성 시 적절한 제약 조건을 설정 (테이블 생성 시 지정하는 옵션)> 데이터 조회보다는 입력/ 수정 / 삭제 할 때 지키는 옵션들 (1) 엔티티 무결성-각 행은 고유해야하고, 각 행을 식별하기 위해서 NULL 이 아닌 고유 값(일련 번호) 가 필요하다 | 기본키 (PRIMARY KEY..

[아이티윌 빅데이터 52기] Day 3 SQL 함수 2 그룹 조회

SQL 함수2 그룹 조회-날짜 시간 함수-형변환 / 조건 함수-집계 함수-그룹 조회-윈도우 함수 날짜 시간 함수 1. 현재 날짜/ 시간 조회 : NOW() CURDATE() CURTIME()NOW() 현재 날짜와 시간 반환CURDATE(): 현재 날짜만 반환CURTIME():현재 시간 반환 *컴퓨터에 내장된 값을 가져오기 때문에 FROM 안 붙음SELECT NOW() AS 현재_날짜시간, CURDATE() AS 오늘날짜, CURTIME() AS 현재시간; 2,테이블에 저장된 날짜 데이터를 가져오는 DATE() ,TIME()-데이터 타입이 날짜/시간인 경우에 대해 활용 가능 3. YEAR() MONTH () DAY()년도 월 일자를 추출 4.DATE_ADD () 날짜 연산DATE_ADD(DATE, I..

[아이티윌 빅데이터 52기] Day 2 데이터 검색하기 SQL 함수

데이터 검색하기 SQL 함수 1-데이터 검색하기-집합 연산자-문자열 함수-숫자 함수 WHERE ,UNION, INTERSECT ,EXCEPT, 를 이해문자열/숫자 함수의 종류 파악 WHERE 절의 사용-특정 검색 조건을 만족하는 행만 조회-비교 / 논리/ SQL 연산자 비교 연산자 : = . != , ,>= , 논리 연산자 : AND . OR . NOT -AND 모든 조건이 참 / OR 하나라도 참 -괄호를 적용하면 우선적으로 적용 SELECT * FROM STUDENTS WHERE (GRADE =1 OR GRADE = 2) AND STATUS = '재학;ORDER BY GRADE ASC; -AND 가 OR 보다 우선적으로 적용SELECT * FROM STUDENTS WHERE GRADE =1..