SQL 7

프로그래머스 SQL - 상위 퍼센트 대로 나누기 / percent_rank()

프로그래머스 - 대장균의 크기에 따라 분류하기 2번 문제  -정답-select ID , (case when p   필요한 지식  percent_rank() : 상대적 백분위 수를 나타낸다. 값이 낮을 수록 값이 크다."상위 ~ 퍼센트" 값을 구할때 매우 유용할듯기본구성 Percent_rank() over(partition by 컬럼1 order by 컬럼2 ASC/DESC) 이때 partition by 는 생략 가능 ,  select 고객번호, 마일리지 , percent_rank() over(partition by 지역 order by 마일리지 DESC)*100 백분위from 고객order by 백분위 Asc;

SQL 2025.03.27

[DB]NULL값 허용과 관계테이블

n대 n의 관계에서는 '관계테이블'이 필수, 1대 n의 관계에선 n(자식)쪽에 FK를 두면 된다 (단, n(자식)쪽이 먼저 데이터가 생성된다면 FK쪽에 null값이 들어올 수도 있다. -> 널값을 회피하기 위해  '관계테이블' 활용해도 됨  => 같은 활용으로 1대1관계에서도 관계테이블을 사용하는 경우가 있음) [예시]Orders(자식테이블 多) -부모테이블의 데이터가 먼저 발생해야 자식테이블에 있는 FK값이 null 값이 안됨. 단, 논리적으로 자식테이블이 부모테이블보다 먼저 발생되므로ORDERS 테이블의 FK 칼럼의 속성값이 null값이 올 수 밖에 없다.  이럴 경우 관계 테이블을 만들어서 null값을 회피해도 되지만, 데이터가 많지 않아, 낭비되는 메모리의 비율이 크지 않다면, 널값을 허용함으로..

SQL 2024.11.20

SQL기출 오답풀이

3회독 헷갈리는 문항 정리페이지문제번호선택지71021227421371244115742175631,2,48169CUME_DISK .. OVER()의 정의    1. 데이터 모델링의 이해8번 선택지 1~ 31) 피터첸에 의해 erm 표기법 생성2) entity 도출 -> 배치 -> 관계 설정 -> 관계명 기술10번 선택지 2 ~ 32) 통계성 엔터티나 코드성 엔터티는 관계를 생략할 수 있다3) 엔터티는 두개 이상의 인스턴스를 가져야 한다." 한 엔터티는 두 개 이상의 인스턴스를 가지고, 하나의 인스턴스는 두 개 이상의 속성을 가진다. 또한 하나의 속성은 하나의 속성값을 가진다"15번 선택지 1엔터티의 구체적이고 자세한 정보를 나타냄 (상대적으로 접근)18번 1번, 3번(1) 시스템 카탈로그  - 사용자 테이..

SQL 2024.11.14

[Oracle] 비율함수

Ratio_to_report() over() : 해당 값이 전체 값의 몇 프로를 차지하는지? ( 0 Percent_rank() over() : 랭킹 / 전체 건수 : 꼴지='1', 랭킹이 높을 수록 0에 가까움 ( 0 Cume_dist() over() : 현재 행까지 누적 건수 / 전체 건수 ( 0 Ntile() over() : 주어진 수만큼 행들을 n등분 / 같은 값이더라도 등수를 내림 / 2그룹으로 나누었을때 똑같은 행수로 나누어 떨어지지 않으면 1그룹에 할당한다

SQL 2024.10.25

[oracle sql] 의사 컬럼, 분석 함수, 계층 쿼리

1. 의사컬럼 물리적 테이블에는 존재하지 않지만, select 결과셋(select절에서 추가됨)에는 존재하는 컬럼 rowid : 자바의 hashcode같은 메모리 주소, 각 행들의 키값, Index로 사용rownum : 결과셋의 번호를 순서대로 붙인 것select rowid, rownum, empno, ename from emp;  의사컬럼이 추가되는 시점은 select절이다. order by 전에 추가된다.select rowid, rownum, empno, ename from emp order by sal desc; 2. 분석 함수일반테이블의 결과셋과 group by 의 결과셋을 같이 출력할때 사용 □ 윈도우 함수(오버 함수)를 사용하는 경우 (내부적으로 join 등이 실행된다)형태 : 함수이름(매개값..

SQL 2024.10.22

Group by 확장기능

union all =(축약)=> grouping sets =(축약)=> rollup / cube 1. group by grouping sets(); emp 테이블의 gender 을 그룹핑 + emp 테이블의 ()을 그룹핑 = 두개의 group by 결과물은 union all로 한 것과 같다.// grouping set을 사용하는 경우select gender, count(*) from emp group by grouping set (gender, ());// union all을 사용하는 경우select gender, count(*) from emp group by genderunion all select '전체', count(*) from emp; group by 절 내 실행 순서는 (1)group by ..

SQL 2024.10.21