전체 평균 컬럼을 추가하고 싶습니다. 0 2 886

by SQL잘하고싶어졌어 [Oracle 기초] [2021.01.29 15:15:09]


CREATE TABLE T 
AS(
SELECT '1' class ,'1' s_num, 10 score FROM dual
UNION ALL SELECT '1','2',15 FROM dual
UNION ALL SELECT '1','3',17 FROM dual
UNION ALL SELECT '2','1',20 FROM dual
UNION ALL SELECT '2','2',22 FROM dual
UNION ALL SELECT '2','3',21 FROM dual
UNION ALL SELECT '3','1',11 FROM dual
UNION ALL SELECT '3','2',19 FROM dual
UNION ALL SELECT '3','3',16 FROM dual
);

SELECT * FROM t

 

class  s_num score  전교평균

1         1      10      16.777

1         2      15      16.777
1         3      17      16.777
2         1      20      16.777
2         2      22      16.777
2         3      21      16.777
3         1      11      16.777
3         2      19      16.777
3         3      16      16.777

 

위와같이 끝에 전교평균(모든 score 평균)을 계산해서 추가하고 싶은데.. 집계함수라 추가가 잘 안됩니다.. 어떻게 해야하나요??

 

by 마농 [2021.01.29 15:58:43]
WITH t AS
(
SELECT '1' class, '1' s_num, 10 score FROM dual
UNION ALL SELECT '1', '2', 15 FROM dual
UNION ALL SELECT '1', '3', 17 FROM dual
UNION ALL SELECT '2', '1', 20 FROM dual
UNION ALL SELECT '2', '2', 22 FROM dual
UNION ALL SELECT '2', '3', 21 FROM dual
UNION ALL SELECT '3', '1', 11 FROM dual
UNION ALL SELECT '3', '2', 19 FROM dual
UNION ALL SELECT '3', '3', 16 FROM dual
)
SELECT class, s_num, score
     , ROUND(AVG(score) OVER(), 3) 전교평균
     , ROUND(AVG(score) OVER(PARTITION BY class), 3) 학급평균
  FROM t
;
-- 분석함수 : http://gurubee.net/lecture/2671

 


by SQL잘하고싶어졌어 [2021.01.29 16:01:30]

감사합니다 ㅠㅠ

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입