프로그래머스 | SQL 스터디 19 (재귀적 CTE) (완)
·
SQL/프로그래머스
SELECT⭐특정 세대의 대장균 찾기(Lv4)문제 설명​문제​풀이출처 :  https://20240228.tistory.com/258 이 문제를 Self join을 2번해서 (노가다) 풀었지만 더 좋은 풀이법이 있어서 출처를 남기고 올립니다. WITH에서 GNEREATION을 설정합니다 1세대의 경우, PARENT_ID가 NULL인 것이 1세대 입니다.UNION ALL로 중복이 없게 합치고추가적으로 PARENT_ID를 가지는 ID를 JOIN해서 세대를 추가합니다. 이렇게 푸는 것이 더 좋은 이유는 유지, 보수 측면에서 더 용이하기 때문입니다.세대라는 칼럼을 추가해서 향후에도 세대를 찾고 싶을때 더 편하게 찾을 수 있죠WITH RECURSIVE CTE AS ( SELECT ID, 1 AS GENERA..
프로그래머스 | SQL 스터디 18
·
SQL/프로그래머스
SELECT부모의 형질을 모두 가지는 대장균 찾기(Lv2)문제 설명​문제​풀이SELECT로 ID, GENOTYPE, PARENT_GENOTYPE를 조회 JOIN에서 PARENT_ID를 가지는 테이블(부모가 있는 ID)을 self-join으로 연결 WHERE에서 E.GENOTYPE과 D.GENOTYPE을 비트 연산자를 한 값이 D.GENOTYPE으로 설정(부모의 형질을 모두 가지는 개체를 찾기 위한 쿼리) ORDER BY 에서 ID로 오름차순 정렬SELECT E.ID, E.GENOTYPE, D.GENOTYPE PARENT_GENOTYPEFROM ECOLI_DATA EJOIN ECOLI_DATA D ON E.PARENT_ID = D.IDWHERE (D.GENOTYPE & E.GENOTYPE) = D.GENO..
프로그래머스 | SQL 스터디 17
·
SQL/프로그래머스
SELECT특정 형질을 가진 대장균 찾기(Lv1)문제 설명​문제​풀이SELECT로 COUNT를 조회 WHERE에서 GENOTYPE이 2번 형질을 가지지 않으면서(GENOTYPE&2 =0)GENOTYPE이 1번이나 3번 형질을 가지게 설정(GENOTYPE&1 > 0 or GENOTYPE&4 > 0)SELECT COUNT(*) AS CountFROM ECOLI_DATA WHERE GENOTYPE&2 =0 AND (GENOTYPE&1 > 0 or GENOTYPE&4 > 0); 대장균의 크기에 따라 분류하기2 (Lv3)문제 설명​문제​풀이WITH에서 NTILE(4)를  SIZE_OF_COLONY별로 설정하고 COLONY_RATE라고 지칭 SELECT로 ID, COLONY_NAME을 조회문제에서 요구한 조..
탐색적 자료분석 review
·
통계
탐색적 자료분석(EDA)이란?데이터의 특징과 내재하는 구조적 관계를 알아내기 위한 기법자료를 모형에 적합시키기보다는 데이터를 있는 그대로 보려는 데에 중점을 둠 자료분석탐색 : 데이터의 특징과 구조 파악 - 기술통계학확증 : 모형이나 효과적 재현성 - 추론통계학-Tukey(1977) : 단순한 계산과 그래프에 집중하여 자료가 무엇을 말하려는 지를 보기 위한 것탐색적 자료분석의 4가지 주제1. 저항성 강조 - 중위수(Median)데이터의 일부 변동에 따른 영향을 비교적 적게 받음중위수는 산술평균보다 이상치의 영향을 덜 받음 2. 잔차(residual) 계산실제값 - 예측값각 개별 관측값이 자료의 주 경향으로부터 얼마나 벗어났는지개별 잔차에도 신경을 써야한다 3. 자료의 재표현 - 변수변환적당한 척도로 변환..
프로그래머스 | SQL 스터디 16
·
SQL/프로그래머스
SELECT대장균들의 자식의수 구하기(Lv3)문제 설명​문제​풀이SELECT로 ID, CHILD_COUNT를 조회 JOIN에서 selfjoin으로 ID와 PARENT_ID를 LEFT JOIN으로 연결* 개념적으로는 이렇게 구현해야 한다는 것을 알았지만, 방법을 잘 몰라 처음에는 WHERE ID=PARENT_ID로 구현함WHERE ID = PARENT_ID의 의미:이 조건은 동일한 개체가 부모 개체와 자식 개체가 되도록 강제합니다.즉, 동일한 레코드의 ID 값과 PARENT_ID 값이 같아야 하는 경우를 찾는다는 의미가 됩니다.그러나, 문제에서는 부모 개체의 ID와 자식 개체의 PARENT_ID가 서로 다른 행에 있어야 합니다.이런 문제점 때문에 self join으로 left join을 하는 것이 올바름!..
프로그래머스 | SQL 스터디 15 (SUBSTIRNG)
·
SQL/프로그래머스
SELECT가장 큰 물고리 10마리 구하기(Lv1)문제 설명​문제​풀이SELECT로 ID, LENGTH를 조회 ORDER BY에서 LENGTH 내림차순, ID 오름차순 정렬 LIMIT 10으로 상위 10마리 출력SELECT ID, LENGTHFROM FISH_INFOORDER BY LENGTH DESC, ID ASCLIMIT 10; 특정 물고리를 잡은 총 수 구하기(Lv2)문제 설명​문제​풀이SELECT로 COUNT로 FISH_COUNT를 조회 JOIN으로 공통 컬럼인 FISH_TYPE으로 두 테이블을 연결  WHERE에서 BASS, SNAPPER라는 FISH_NAME을 가진 것으로 제한SELECT COUNT(*) FISH_COUNTFROM FISH_INFO IJOIN FISH_NAME_INFO N ON..
프로그래머스 | SQL 스터디 14 (Union, Union all)
·
SQL/프로그래머스
SELECT★오프라인/온라인 판매 데이터 통합하기 (Lv4)문제 설명 ​문제​풀이SELECT로 판매 데이터의 판매 날짜, 상품ID, 유저ID, 판매량을 조회 FROM에서 온라인 데이터와 오프라인 데이터를 각각 UNION ALL을 통해서 병합* 오프라인 데이터의 USER_ID는 NULL 처리* 22년 3월의 데이터로 한정 ORDER BY에서 SALES_DATE, PRODUCT_ID, USER_ID 순으로 오름차순 정렬※ 모든 서브쿼리에는 별칭이 필수이다!!SELECT DATE_FORMAT(SALES_DATE, '%Y-%m-%d') SALES_DATE, PRODUCT_ID, USER_ID, SALES_AMOUNTFROM ( -- 온라인 데이터 SELECT SALES_DATE, PRODUCT_ID, U..
프로그래머스 | SQL 스터디 13
·
SQL/프로그래머스
SELECT업그레이드 된 아이템 구하기(Lv2)문제 설명​문제 아이템의 희귀도가 'RARE'인 아이템들의 모든 다음 업그레이드 아이템의 아이템 ID(ITEM_ID), 아이템 명(ITEM_NAME), 아이템의 희귀도(RARITY)를 출력하는 SQL 문을 작성해 주세요. 이때 결과는 아이템 ID를 기준으로 내림차순 정렬주세요. ​풀이SELECT로 아이템 ID(ITEM_ID), 아이템 명(ITEM_NAME), 아이템의 희귀도(RARITY) 를 조회 JOIN에서 ITEM_INFO, ITEM_TREE를 공통 컬럼인 ITEM_ID로 연결 WHERE에서 희귀도가 RARE인 ITEM_ID이 PARENT_ID에 있는 것으로 제한 ORDER BY에서 ITEM_ID 순으로 내림차순 정렬SELECT I.ITEM_ID ,..
프로그래머스 | SQL 스터디 12
·
SQL/프로그래머스
SELECT모든 레코드 조회하기(Lv1)문제 설명​문제 동물 보호소에 들어온 모든 동물의 정보를 ANIMAL_ID순으로 조회하는 SQL문을 작성해주세요. SQL을 실행하면 다음과 같이 출력되어야 합니다. ​풀이SELECT로 모든 정보를 조회 ORDER BY에서 ANIMAL_ID 순으로 오름차순 정렬SELECT *FROM ANIMAL_INSORDER BY ANIMAL_ID; 역순 정렬하기(Lv1)문제 설명​문제 동물 보호소에 들어온 모든 동물의 이름과 보호 시작일을 조회하는 SQL문을 작성해주세요. 이때 결과는 ANIMAL_ID 역순으로 보여주세요. SQL을 실행하면 다음과 같이 출력되어야 합니다. ​풀이SELECT로 NAME, DATETIME을 조회 ORDER BY에서 ANIMAL_ID 순으로 내림차순 ..
프로그래머스 | SQL 스터디 11 (비트연산자 &)
·
SQL/프로그래머스
SELECT서울에 위치한 식당 목록 출력하기(Lv4)문제 설명​문제 REST_INFO와 REST_REVIEW 테이블에서 서울에 위치한 식당들의 식당 ID, 식당 이름, 음식 종류, 즐겨찾기수, 주소, 리뷰 평균 점수를 조회하는 SQL문을 작성해주세요. 이때 리뷰 평균점수는 소수점 세 번째 자리에서 반올림 해주시고 결과는 평균점수를 기준으로 내림차순 정렬해주시고, 평균점수가 같다면 즐겨찾기수를 기준으로 내림차순 정렬해주세요. ​풀이SELECT로 식당 ID, 식당 이름, 음식 종류, 즐겨찾기수, 주소, 리뷰 평균 점수를 조회  JOIN에서 공통 컬럼인 REST_ID로 연결​ WHERE문에서 '서울'이 들어간 지역으로 제한* 서울특별시로 해서 틀렸는데, 서울특별시라고 표기하지 않은 식당들이 존재해서 '서울'로..
프로그래머스 | SQL 스터디 10
·
SQL/프로그래머스
SELECT재구매가 일어난 상품과 회원 리스트 구하기 (Lv2)문제 설명​문제 ONLINE_SALE 테이블에서 동일한 회원이 동일한 상품을 재구매한 데이터를 구하여, 재구매한 회원 ID와 재구매한 상품 ID를 출력하는 SQL문을 작성해주세요. 결과는 회원 ID를 기준으로 오름차순 정렬해주시고 회원 ID가 같다면 상품 ID를 기준으로 내림차순 정렬해주세요. ​풀이SELECT로 회원 ID, 상품 ID 를 조회 GROUP BY에서 회원 ID, 상품 ID로 그룹화 HAVING에서 개수가 1보다 큰 것으로 지정 ORDER BY에서 회원 ID는 오름차순, 상품 ID는 내림차순 정렬SELECT USER_ID,PRODUCT_IDFROM ONLINE_SALEGROUP BY USER_ID, PRODUCT_IDHAVING ..
프로그래머스 | JOIN - 없어진 기록 찾기 (+JOIN정리)
·
SQL/프로그래머스
ANIMAL_INS 테이블, ANIMAL_OUTS 테이블 두 개를 활용하여 쿼리문을 작성하는 문제입니다.​ANIMAL_OUTS 테이블에는 있는데, ANIMAL_INS 테이블에는 없는 동물들의 ID와 이름을 ID순으로 조회해야 합니다.JOIN 의 활용JOIN은 두 테이블의 데이터를 일정한 조건에 의해 연결하여 마치 하나의 테이블처럼 만드는 것으로 볼 수 있습니다.주로 많이 쓰이는 것으로 INNER JOIN과 LEFT OUTER JOIN을 들 수 있습니다.SQL에서 강점으로 생각되는 부분이 바로 테이블간의 JOIN을 통한 데이터 추출이라고 생각합니다.아래는 JOIN과 관련 되어 좋은 자료들을 발견하여 출처를 남기고 올리겠습니다다.출처 : https://hongong.hanbit.co.kr/sql-%EA%B8..