-- 성적관리 테이블
-- 시퀀스
CREATE SEQUENCE SEQ_GRADETB_NO;

CREATE TABLE GRADETB(
	NO NUMBER(3) PRIMARY KEY,
	NAME VARCHAR(50) NOT NULL,
	KOR NUMBER(3) DEFAULT 0,
	ENG NUMBER(3) DEFAULT 0,
	MAT NUMBER(3) DEFAULT 0
);

--총점과 평균을 포함하는 view 생성

CREATE OR REPLACE VIEW GRADETB_VIEW AS
SELECT S.*, (KOR + ENG + MAT) TOT,
	ROUND( (KOR + ENG + MAT) / 3, 1 ) AVG,
	RANK() OVER(ORDER BY (KOR + ENG + MAT) DESC) RANK  --순위별 정렬
FROM (SELECT * FROM GRADETB) S
ORDER BY NO;

--S라는 별칭으로 전체검색을 먼저 한 후 모든 내용을 포함해서 TOT라는 별칭 컬럼을 만든다.
--총점이 높은 순으로 (RANK() OVER) 정렬
--VIEW에 TOT, AVG, RANK  추가

SELECT * FROM GRADETB_VIEW에서 조회.