설문조사 분야별 점수 쿼리 질문합니다 0

by 쿼리잘짜고싶어요 [2023.06.23 10:52:34]


안녕하세요.

설문조사 관련하여 분야별 점수 및 종합점수를 구하는 쿼리를 작성하려고하는데

도움부탁드립니다

각 (1)질문1 및 (2)질문2에 대하여 5문항으로 되어있고 매우만족(100점) / 만족(80점) / 보통(60) / 불만족(40) / 매우불만족(20)

이렇게 선택을 할 수 있습니다.

조사항목 질문내용 점수 분야별점수 종합점수
질문1 (1) 질문1      
(2) 질문2  
질문2 (1) 질문1    
(2) 질문2  
질문3 (1) 질문1    
(2) 질문2  
질문4 (1) 질문1    
(2) 질문2  
질문5 (1) 질문1    

-----------------------------------------------------------------------------------------------

해당 설문조사 정보 테이블에는 다음과 같이 데이터가 들어가있습니다.

설문관리번호 / 질문순번 / 항목순번

20230001 / 1 / 1 

20230001 / 1 / 2

20230001 / 2 / 1

20230001 / 2 / 2

 

현재 점수평균은 구한상태입니다.

점수 평균 같은 경우에는 각 질문의 항목에 대해 점수컬럼이 없기에 이런식으로 구했습니다.

SELECT 질문순번

,          TRUNC((AVG(CASE 항목순번 WHEN '1' THEN 100

                                                WHEN '2' THEN 80

                                                WHEN '3' THEN 60

                                                WHEN '4' THEN 40

                                                WHEN '5' THEN 20

                                                ELSE 0 END)), 1) AS 점수

FROM 테이블

WHERE 설문관리번호 = '20230001'

GROUP BY 질문순번

 

분야별점수와 종합점수를 구해야하는데 어떤식으로 구해야할지 감이 안옵니다..

도움좀 부탁드립니다. 현재 작업하고 있는 DB는 Tibero입니다.

by 마농 [2023.06.26 10:43:22]

원본 대비 결과표를 좀더 명확하게 표현해 주셔야 합니다.


by 마농 [2023.06.27 09:05:16]
SELECT 조사항목
     , 질문순번
     , TRUNC(AVG(v), 1) 점수
     , TRUNC(AVG(AVG(v)) OVER(PARTITION BY 조사항목), 1) 분야별점수
     , TRUNC(AVG(AVG(v)) OVER(), 1) 종합점수
  FROM (SELECT 조사항목
             , 질문순번
             , CASE 항목순번 WHEN 1 THEN 100
                             WHEN 2 THEN  80
                             WHEN 3 THEN  60
                             WHEN 4 THEN  40
                             WHEN 5 THEN  20
                             ELSE 0 END v
          FROM 테이블
         WHERE 설문관리번호 = '20230001'
        ) a
 GROUP BY 조사항목, 질문순번
;

 

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