분류 전체보기 57

프로그래머스 SQL 오답노트 Level 4 년, 월, 성별 별 상품 구매 회원 수 구하기

프로그래머스 년, 월, 성별 별 상품 구매 회원 수 구하기 USER_INFO 테이블과 ONLINE_SALE 테이블에서 년, 월, 성별 별로 상품을 구매한 회원수를 집계하는 SQL문을 작성해주세요. 결과는 년, 월, 성별을 기준으로 오름차순 정렬해주세요. 이때, 성별 정보가 없는 경우 결과에서 제외해주세요. -틀렸던 이유 : USER_ID 를 DISTINCT 처리 해줬어야 했음-한 명의 유저가 여러개의 구매를 발생시킬 수 있었어서 유저 정보와 구매 정보를 조인하면 구매수 만큼 행이 불어나있었음SELECT YEAR(S.SALES_DATE) YEAR, MONTH(S.SALES_DATE) MONTH, I.GENDER GENDER, COUNT(I.USER_ID) USERSFROM USER_INFO I RI..

SQL 2025.10.15

[아이티윌 빅데이터 52기] Day 7 Python Basic

파이썬 시작하기 / 변수와 연산자-프로그래밍 언어-파이썬 코딩 준비-개발 도구 설치하기-첫 번쨰 프로그램-변수의 이해 프로그래밍 언어프로그램은 사람이 컴퓨터에게 전달하기 위한 명령어의 모음으로저장 / 검색 / 수정 / 삭제로 이루어져있음 sql 로 보면 insert , Select , Update ,Delete소프트웨어로 보면 create ,read ,update ,delete > CRUD 소프트웨어가 수행해야하는 가장 기본적인 기능 컴퓨터는 0.1로 이루어진 이진수 체계만 이해할 수 있고프로그램은 컴퓨터에게 명령을 내리기 위한 이진수의 집합이라 할 수 있음 근데 우리가 직접 컴퓨터랑 이진수로 소통할 수 없으니프로그래밍 언어를 통해 진행하는 것 파이썬이 실행되는 방식소스 코드 > 인터프리터 > ..

프로그래머스 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..