table 구조가 아이디, 이벤트(로그인/로그아웃), 이벤트일시로 되있는 경우임.
// 1일 단위의 사용자 로그인 수(중복아이디 제거 안함)
SELECT EVT_DT, COUNT(ADM_SQ) FROM HIST_ADM_LGN_TB WHERE EVT_GB = 0 AND ADM_SQ IS NOT NULL GROUP BY DATE_FORMAT(EVT_DT, '%y-%m-%d');
// 사용자별 1일 시스템 접속 시간
SELECT ILV.ADM_SQ, TRUNCATE(SUM(UNIX_TIMESTAMP(LOGOUTTIME)
- IF(LOGINTIME IS NULL,
UNIX_TIMESTAMP(LOGOUTTIME),
UNIX_TIMESTAMP(LOGINTIME))) / 60 / 60, 0) AS SUM_LOGIN
FROM (SELECT A.ADM_SQ, A.EVT_DT AS LOGOUTTIME,
(SELECT MAX(B.EVT_DT) FROM HIST_ADM_LGN_TB B WHERE B.ADM_SQ = A.ADM_SQ AND B.EVT_DT < A.EVT_DT AND B.EVT_GB = 0) AS LOGINTIME
FROM HIST_ADM_LGN_TB A WHERE A.EVT_GB = 1
/*AND A.EVT_DT BETWEEN '2020-01-21' AND '2020-01-23'*/
/*AND adm_sq = 6 */) ILV
GROUP BY ILV.adm_sq;
stackoverflow는 사랑입니다. 감사합니다.
'Tip' 카테고리의 다른 글
[Tomcat] 취약점(CVE-2020-1938) Tomcat7.0.100으로 업그레이드 (0) | 2020.04.09 |
---|---|
[mysql] 외래키 foreign key 무시 (0) | 2020.04.02 |
[mysql] 쿼리결과를 csv 파일로 출력 (0) | 2020.04.02 |
[mysql] csv txt파일을 local서버가 아닌 곳에서 import (0) | 2020.04.02 |
[mssql] lock 공부 및 해결 (0) | 2020.04.02 |