database.sarang.net
UserID
Passwd
Database
DBMS
ㆍMySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MySQL Q&A 31348 게시물 읽기
No. 31348
쿼리 질문 - 특정 기간에 날짜별 접속기기별 방문수
작성자
조현철(kreatist)
작성일
2021-09-26 18:27
조회수
3,880

f_date f_ymd f_os f_browser f_page_view f_ip f_device  
2021-09-21 16:55:04 2021-09-21 windows Chrome 1 221.148.63.00 pc
2021-09-22 16:55:31 2021-09-22 windows Chrome 1 221.148.63.00 pc
2021-09-22 17:02:00 2021-09-22 windows Chrome 3 221.148.63.00 mobile
2021-09-23 17:03:00 2021-09-23 windows Chrome 2 221.148.63.00 pc
2021-09-24 17:03:13 2021-09-24 windows Chrome 1 221.148.63.00 mobile
2021-09-24 17:03:24 2021-09-24 windows Chrome 4 221.148.63.00 mobile
2021-09-25 17:05:09 2021-09-25 windows Chrome 2 221.148.63.00 mobile
2021-09-25 17:05:19 2021-09-25 windows Chrome 1 221.148.63.00 pc



위와 같은 테이블이 있는데, 

특정 기간에 날짜별 접속기기(f_device)별 방문수(row의 갯수)와 페이지뷰(f_page_view)를 구해야 합니다.


SELECT *, sum(f_page_view) as page_view FROM `t_log` WHERE f_ymd>="2021-09-18" and f_ymd<="2021-09-25" group by f_ymd


이렇게 쿼리를 해봤는데, 날짜별 페이지뷰의 합은 나오는데, 기기별로 분리할 방법이 없을까요?


1. 날짜별로 페이지뷰의 합은 구했습니다. (sum(f_page_view))

2. 날짜별 f_device 값을 구분해서 볼 수 있을까요? (9-22일에  PC로 1명, mobile로 3명이 접속했다)


최종적으로 만들 데이터는


{

"date": "2021-09-21",

"Total": 1,

"PC": 1,

"Mobile": 0

}, {

"date": "2021-09-22",

"Total": 4,

"PC": 1,

"Mobile": 2

}, {

"date": "2021-09-23",

"Total": 2,

"PC": 2,

"Mobile": 0

}, ......


이런 식의 데이터입니다.



 

이 글에 대한 댓글이 총 2건 있습니다.

sum case로 사용하시면 될 것 같네요.


SELECT f_ymd, 

       sum(f_page_view) as total, 

       sum(case when f_device='pc' then f_page_view else 0 end) as pc,

       sum(case when f_device='mobile' then f_page_view else 0 end) as mobile 

FROM `t_log` 

WHERE f_ymd>="2021-09-18" and f_ymd<="2021-09-25" 

GROUP BY f_ymd

정상규(pajama)님이 2021-09-26 21:09에 작성한 댓글입니다.

대박 감사합니다~~!!!

조현철(kreatist)님이 2021-09-26 22:03에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
31351mariadb 10.4 유저 패스워드 sha256 암호화 방식으로 사용하는 방법 문의드립니다. [1]
신은정
2021-10-21
3841
31350mariadb 테이블에 데이터가 어떤 암호화 알고리즘을 사용하는지 확인가능한가요? [1]
신은정
2021-10-20
3561
31349insert 프로시저 진행 후 select 프로시저 진행 시 select 오류
이승태
2021-10-15
3555
31348쿼리 질문 - 특정 기간에 날짜별 접속기기별 방문수 [2]
조현철
2021-09-26
3880
31347쿼리하나 부탁 드립니다. [7]
이기자
2021-09-04
3307
31346mysql function에서 union all 사용 안되나요? [3]
이기자
2021-09-03
3061
31344Function 소스 보기를 금지하는 방법 [2]
이규영
2021-08-12
3384
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.021초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다