1. 질문
카카오톡 x그룹방에서 1년동안 이모티콘을 가장 많이 사용한 사람과 가장 많이 사용된 이모티콘을 출력하시오.
2. 참고data
2015_카카오톡 x그룹채팅 내용.xlsx
1년 동안 카카오톡 x그룹채팅 대화내용데이터
(참조)
1. 그룹방 인원 15명
2. 개인정보 보호로 인하여 대화 참여자의 이름은 ( 'A' ~ 'P' )로 변환하였음
3. 테이블생성스크립트
4. 분석쿼리
SELECT kname, emoticon, P_TOTAL
FROM(SELECT NVL(TO_CHAR(kname),'E_TOTAL') AS kname,
COUNT(DECODE(emoticon,'(깜짝)', kname)) AS "(깜짝)",
COUNT(DECODE(emoticon,'(까아)', kname)) AS "(꺄아)",
COUNT(DECODE(emoticon,'(부끄)', kname)) AS "(부끄)",
COUNT(DECODE(emoticon,'(뿌듯)', kname)) AS "(뿌듯)",
COUNT(DECODE(emoticon,'(수정)', kname)) AS "(수정)",
COUNT(DECODE(emoticon,'(수줍)', kname)) AS "(수줍)",
COUNT(DECODE(emoticon,'(신나)', kname)) AS "(신나)",
COUNT(DECODE(emoticon,'(심각)', kname)) AS "(심각)",
COUNT(DECODE(emoticon,'(쑥스)', kname)) AS "(쑥스)",
COUNT(DECODE(emoticon,'(씨익)', kname)) AS "(씨익)",
COUNT(DECODE(emoticon,'(아잉)', kname)) AS "(아잉)",
COUNT(DECODE(emoticon,'(야호)', kname)) AS "(야호)",
COUNT(DECODE(emoticon,'(우와)', kname)) AS "(우와)",
COUNT(DECODE(emoticon,'(짜증)', kname)) AS "(짜증)",
COUNT(DECODE(emoticon,'(찡긋)', kname)) AS "(찡긋)",
COUNT(DECODE(emoticon,'(크크)', kname)) AS "(크크)",
COUNT(DECODE(emoticon,'(하하)', kname)) AS "(하하)",
COUNT(DECODE(emoticon,'(허걱)', kname)) AS "(허걱)",
COUNT(DECODE(emoticon,'(훌쩍)', kname)) AS "(훌쩍)",
COUNT(DECODE(emoticon,'(흑흑)', kname)) AS "(흑흑)",
COUNT(DECODE(emoticon,'(힘듦)', kname)) AS "(힘듦)",
COUNT(emoticon) AS P_TOTAL
FROM(SELECT kname, regexp_substr(ktalk, '\((..)\)',1,1) AS emoticon
FROM kakao)
GROUP BY ROLLUP(kname))
UNPIVOT(P_TOTAL FOR emoticon IN ("(깜짝)", "(꺄아)", "(부끄)", "(뿌듯)", "(수정)", "(수줍)", "(신나)", "(심각)", "(쑥스)", "(씨익)", "(아잉)", "(야호)", "(우와)", "(짜증)", "(찡긋)", "(크크)", "(하하)", "(허걱)", "(훌쩍)", "(흑흑)", "(힘듦)" ,P_TOTAL))
WHERE kname != 'E_TOTAL'
AND P_TOTAL != 0
OR kname != 'E_TOTAL'
OR emoticon != 'P_TOTAL'
ORDER BY 3 DESC, 1;
5. 결과화면
6. 결론
1년 동안의 이모트콘을 가장 많이 사용한 사람은 ‘G‘ 라는 것을 알 수 있었고 그룹방 사람들이 가장 많이 사용한 이모티콘은
과 인 것을 알 수 있었다. 이모티콘만 보았을 때 다른 감정보다 슬프거나 힘들 때 이모티콘을 더 사용하는 것을
알 수 있었다.
7. 연습문제
그룹채팅에서 가장 많이 언급 받은 사람을 출력하시오!
(위의 문제를 참고하여 아래와 같은 결과가 나오게 출력하시오)
A2.txt
첫댓글 <a3>
SELECT kmonth AS 월 ,kday AS 요일, 회식
FROM (SELECT NVL(to_char(kmonth), '총') AS kmonth,
NVL(to_char(kday), '합 :') AS kday,
SUM(regexp_count(ktalk, '회식')) AS 회식
FROM kakao
GROUP BY rollup ((kname, kmonth, kday)))
WHERE 회식 != 0
ORDER BY 1;