ROW_NUMBER() vs. RANK() vs. DENSE_RANK()
·
SQL
1. ROW_NUMBER()고유한 순위를 부여동일한 값이 있어도 각 행에 고유한 번호가 매김건너뛰는 순위가 없음: 순위는 항상 연속적으로 증가SELECT name, salary, ROW_NUMBER() OVER (ORDER BY salary DESC) AS row_numFROM Employees;namesalary row_numEve70001Frank65002David65003Bob50004Charlie40005Alice30006 Frank와 David의 급여가 같지만, ROW_NUMBER()는 이들에게 서로 다른 고유한 순위를 부여 2. RANK()동일한 값이 있을 경우 같은 순위를 부여동일한 순위가 부여된 후에는 그 다음 순위가 건너뜀SELECT name, salary, RANK() OVER (ORD..
기초통계학 review
·
통계
1. 통계학 개론통계학 특정 목적을 이루기 위하여 올바른 자료를 수집하고 생성하는 효과적인 방법을 연구하고, 이러한 자료를 효과적으로 정보화하여, 이를 바탕으로 과학적인 의사결정 방법을 연구하고 개발하는 학문 통계적 자료 : Statistical Data (sample) 통계적 연구를 목적으로 수집한 자료를 통계적 자료라고 한다. 특히 조사대상 전체에서 수집한 자료를 모집단자료(population data)라고 하며 조사대상의 일부에서 수집한 자료를 표본자료(sample data)라고 한다. 기술통계학 자료를 정리하고 요약하여 그 특성을 정확하게 기술하는 분야야 추론통계학대부분의 통계적 자료는 표본자료이고 따라서 표본자료로부터 모집단 전체의 특성을 파악하기 위한 분야 표본추출모집단의 특성을 정확히 파악하..
프로그래머스 | 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..