통계쿼리? 질문좀 드릴게요~ 0 2 1,677

by 구기웅 [SQL Query] [2015.03.13 17:48:44]


2015-03-13_174210.png (17,885Bytes)
2015-03-13_174220.png (18,924Bytes)

안녕하세요 즐거운 금요일 보내고 계신가요.

다름이 아니라 제가 이번에 간단한 통계쪽을 한번 짜보라고해서 해당 유져의 agent 부분을 가지고 db에 insert 치고 월별, 년도별 통계 데이터를 그리려고 하고있습니다.

해당첨부 이미지처럼 데이터들이 한로우씩 계속 쌓이고 있습니다.

이부분을 브라우져별 + 월별의 카운트들 , 브라우져별 + 년도별의 카운트 데이터를 추출해서 보여주고 싶은데요.

SELECT 
    AGENT_NM,
    TO_CHAR(REG_DT, 'YYYY-MM') AS REG_DT,
    COUNT(1) AS CNT
FROM VB_STAT_USERAGENT
GROUP BY AGENT_NM, TO_CHAR(REG_DT, 'YYYY-MM')
ORDER BY AGENT_NM ASC;

이런식으로 처리하였을때 문제가 AGENT_NM 이라는 컬럼에 같은 브라우져가 들어오는게 문제입니다.

저에게 필요한 데이터는 예를들면

DATE         Chrome        IE         Safari

2015-03        10            20         12

2015-04        5             34          5

2015-05        12            22         9

이런식의 데이터를 가져오고 싶습니다.

생각을 하면서 적었으나 질문이 불명확하거나 부족한부분은 말씀해주시면 계속 수정하겠습니다.

 

부탁드립니다 ^^

 

by 마농 [2015.03.13 18:09:47]
SELECT TO_CHAR(reg_dt, 'yyyy-mm') AS reg_ym
     , COUNT(CASE WHEN agent_nm LIKE '%Chrome%'  THEN 1 END) "Chrome"
     , COUNT(CASE WHEN agent_nm LIKE '%IE%'      THEN 1 END) "IE"
     , COUNT(CASE WHEN agent_nm LIKE '%Safari%'  THEN 1 END) "Safari"
     , COUNT(CASE WHEN agent_nm LIKE '%Firefox%' THEN 1 END) "Firefox"
     , COUNT(*) tot
  FROM vb_stat_useragent
 GROUP BY TO_CHAR(reg_dt, 'yyyy-mm')
 ORDER BY reg_ym
;

 


by 구기웅 [2015.03.13 18:18:57]

마농님 감사합니다 !!! 

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