팀 쿼리별 활동
이 문서의 쿼리를 사용하여 고급 Analytics의 시각화와 유사한 데이터 시각화를 만들 수 있습니다.
IMPORTANT
쿼리는 향상된 Analytics에 표시된 결과와 유사한 결과를 생성하지만 정확히 일치하지 않을 수 있습니다.
전제 조건
시작하기 전에 다음을 수행해야 합니다
-
Business Intelligence(BI) 도구와의 연결 설정:
연결을 설정한 후에는 이 문서의 쿼리를 사용하여 데이터를 추출하고 시각화할 수 있습니다.
홈 팀 사용자의 로그인 이벤트
WITH userlogins as (
SELECT
userid,
lastlogindate
FROM (
SELECT
userid,
lastlogindate,
lag(lastlogindate, 1, '1990-01-01') OVER (PARTITION BY userid ORDER BY begin_effective_timestamp) as previous_login
FROM users_event
)
WHERE lastlogindate != previous_login
)
SELECT
uc.hometeamid,
TO_DATE(ul.lastlogindate),
count(*)
FROM users_current uc
INNER JOIN userlogins ul ON uc.userid = ul.userid
WHERE hometeamid is not null
GROUP BY uc.hometeamid, TO_DATE(ul.lastlogindate)
홈 팀 사용자의 로그인 이벤트: 드릴다운
WITH userlogins as (
SELECT
userid,
lastlogindate
FROM (
SELECT
userid,
lastlogindate,
lag(lastlogindate, 1, '1990-01-01') OVER (PARTITION BY userid ORDER BY begin_effective_timestamp) as previous_login
FROM users_event
)
WHERE lastlogindate != previous_login
)
SELECT
uc.hometeamid,
uc.userid,
TO_DATE(ul.lastlogindate),
count(*)
FROM users_current uc
INNER JOIN userlogins ul ON uc.userid = ul.userid
WHERE hometeamid is not null
GROUP BY uc.hometeamid, uc.userid, TO_DATE(ul.lastlogindate)
Teams 사용자의 로그인 이벤트
WITH userlogins as (
SELECT
userid,
lastlogindate
FROM (
SELECT
userid,
lastlogindate,
lag(lastlogindate, 1, '1990-01-01') OVER (PARTITION BY userid ORDER BY begin_effective_timestamp) as previous_login
FROM users_event
)
WHERE lastlogindate != previous_login
)
SELECT
tmc.teamid,
TO_DATE(ul.lastlogindate),
count(*)
FROM teammembers_current tmc
inner join teams_current tc on tc.teamid = tmc.teamid and tc.teamtype != 'PROJECT'
inner join userlogins ul on tmc.userid = ul.userid
WHERE tmc.teamid is not null
GROUP BY tmc.teamid, TO_DATE(ul.lastlogindate)
팀의 사용자 로그인 이벤트: 드릴다운
WITH userlogins as (
SELECT userid, lastlogindate
FROM (
SELECT userid, lastlogindate, lag(lastlogindate, 1, '1990-01-01') OVER (PARTITION BY userid ORDER BY begin_effective_timestamp) as previous_login
FROM users_event
)
WHERE lastlogindate != previous_login
)
SELECT tmc.teamid, tmc.userid, TO_DATE(ul.lastlogindate), count(*)
FROM teammembers_current tmc
INNER JOIN teams_current tc ON tc.teamid = tmc.teamid AND tc.teamtype != 'PROJECT'
INNER JOIN userlogins ul ON tmc.userid = ul.userid
WHERE tmc.teamid is not null
GROUP BY tmc.teamid, tmc.userid, TO_DATE(ul.lastlogindate)
홈 팀 사용자의 작업 상태 변경 이벤트
WITH task_status_changes as (
SELECT
taskid,
status,
begin_effective_timestamp
FROM (
SELECT
taskid,
status,
begin_effective_timestamp,
lag(status, 1, 'NOSTATUS') OVER (PARTITION BY taskid ORDER BY begin_effective_timestamp) as previous_status
FROM tasks_event
WHERE status != 'CPL'
)
WHERE status != previous_status
)
SELECT
uc.hometeamid,
TO_DATE(tsc.begin_effective_timestamp),
count(tsc.taskid) as task_status_updates
FROM users_current uc
INNER JOIN assignments_current ac ON uc.userid = ac.assignedtoid
INNER JOIN task_status_changes tsc ON ac.taskid = tsc.taskid
WHERE hometeamid is not null
GROUP BY uc.hometeamid, TO_DATE(tsc.begin_effective_timestamp)
홈 팀 사용자의 작업 상태 변경 이벤트: 드릴다운
WITH task_status_changes as (
SELECT
taskid,
status,
begin_effective_timestamp
FROM (
SELECT
taskid,
status,
begin_effective_timestamp,
lag(status, 1, 'NOSTATUS') OVER (PARTITION BY taskid ORDER BY begin_effective_timestamp) as previous_status
FROM tasks_event
WHERE status != 'CPL'
)
WHERE status != previous_status
)
SELECT
uc.hometeamid,
uc.userid,
TO_DATE(tsc.begin_effective_timestamp),
count(tsc.taskid) as task_status_updates
FROM users_current uc
INNER JOIN assignments_current ac ON uc.userid = ac.assignedtoid
INNER JOIN task_status_changes tsc ON ac.taskid = tsc.taskid
WHERE hometeamid is not null
GROUP BY uc.hometeamid, uc.userid, TO_DATE(tsc.begin_effective_timestamp)
팀의 사용자 작업 상태 변경 이벤트
WITH task_status_changes as (
SELECT
taskid,
status,
begin_effective_timestamp
FROM (
SELECT
taskid,
status,
begin_effective_timestamp,
lag(status, 1, 'NOSTATUS') OVER (PARTITION BY taskid ORDER BY begin_effective_timestamp) as previous_status
FROM tasks_event
WHERE status != 'CPL'
)
WHERE status != previous_status
)
SELECT tmc.teamid, TO_DATE(tsc.begin_effective_timestamp), count(tsc.taskid) as task_status_updates
FROM teammembers_current tmc
INNER JOIN teams_current tc ON tc.teamid = tmc.teamid AND tc.teamtype != 'PROJECT'
INNER JOIN assignments_current ac ON tmc.userid = ac.assignedtoid
INNER JOIN task_status_changes tsc ON ac.taskid = tsc.taskid
WHERE tmc.teamid is not null
GROUP BY tmc.teamid, TO_DATE(tsc.begin_effective_timestamp)
팀의 사용자 작업 상태 변경 이벤트: 드릴다운
WITH task_status_changes as (
SELECT
taskid,
status,
begin_effective_timestamp
FROM (
SELECT
taskid,
status,
begin_effective_timestamp,
lag(status, 1, 'NOSTATUS') OVER (PARTITION BY taskid ORDER BY begin_effective_timestamp) as previous_status
FROM tasks_event
WHERE status != 'CPL'
)
WHERE status != previous_status
)
SELECT
tmc.teamid,
tmc.userid,
TO_DATE(tsc.begin_effective_timestamp),
count(tsc.taskid) as task_status_updates
FROM teammembers_current tmc
inner join teams_current tc ON tc.teamid = tmc.teamid AND tc.teamtype != 'PROJECT'
inner join assignments_current ac ON tmc.userid = ac.assignedtoid
inner join task_status_changes tsc ON ac.taskid = tsc.taskid
WHERE tmc.teamid is not null
GROUP BY tmc.teamid, tmc.userid, TO_DATE(tsc.begin_effective_timestamp)
홈 팀 사용자의 작업 완료 이벤트
WITH task_status_done as (
SELECT
taskid,
status,
begin_effective_timestamp
FROM (
SELECT
taskid,
status,
begin_effective_timestamp,
lag(status, 1, 'NOSTATUS') OVER (PARTITION BY taskid ORDER BY begin_effective_timestamp) as previous_status
FROM tasks_event te
WHERE status = 'CPL'
)
WHERE status != previous_status
), task_percentage_done as (
SELECT
taskid,
percentcomplete,
begin_effective_timestamp
FROM (
SELECT
taskid,
percentcomplete,
begin_effective_timestamp,
lag(percentcomplete, 1, '0') OVER (PARTITION BY taskid ORDER BY begin_effective_timestamp) as previous_percent_complete
FROM tasks_event
WHERE TO_NUMBER(percentcomplete) = 100
)
WHERE percentcomplete != previous_percent_complete
), task_completion_date_exists as (
SELECT
taskid,
actualcompletiondate
FROM tasks_event
WHERE actualcompletiondate is not null
)
SELECT
uc.hometeamid,
TO_DATE(tasks_done.task_completion_date),
count(tasks_done.taskid) as task_completed
FROM users_current uc
INNER JOIN assignments_current ac ON uc.userid = ac.assignedtoid
INNER JOIN (
SELECT distinct taskid, task_completion_date
FROM (
SELECT taskid, TO_DATE(begin_effective_timestamp) as task_completion_date
FROM task_status_done
UNION
SELECT taskid, TO_DATE(begin_effective_timestamp) as task_completion_date
FROM task_percentage_done
UNION
SELECT taskid, TO_DATE(actualcompletiondate) as task_completion_date
FROM task_completion_date_exists
)
) tasks_done ON ac.taskid = tasks_done.taskid
WHERE uc.hometeamid is not null
GROUP BY uc.hometeamid, TO_DATE(tasks_done.task_completion_date)
홈 팀 사용자의 작업 완료 이벤트: 드릴다운
WITH task_status_done as (
SELECT
taskid,
status,
begin_effective_timestamp
FROM (
SELECT
taskid,
status,
begin_effective_timestamp,
lag(status, 1, 'NOSTATUS') OVER (PARTITION BY taskid ORDER BY begin_effective_timestamp) as previous_status
FROM tasks_event te
WHERE status = 'CPL'
)
WHERE status != previous_status
), task_percentage_done as (
SELECT
taskid,
percentcomplete,
begin_effective_timestamp
FROM (
SELECT
taskid,
percentcomplete,
begin_effective_timestamp,
lag(percentcomplete, 1, '0') OVER (PARTITION BY taskid ORDER BY begin_effective_timestamp) as previous_percent_complete
FROM tasks_event
WHERE TO_NUMBER(percentcomplete) = 100
)
WHERE percentcomplete != previous_percent_complete
), task_completion_date_exists as (
SELECT
taskid,
actualcompletiondate
FROM tasks_event
WHERE actualcompletiondate is not null
)
SELECT
uc.hometeamid,
uc.userid,
TO_DATE(tasks_done.task_completion_date),
count(tasks_done.taskid) as task_completed
FROM users_current uc
INNER JOIN assignments_current ac ON uc.userid = ac.assignedtoid
INNER JOIN (
SELECT distinct taskid, task_completion_date
FROM (
SELECT taskid, TO_DATE(begin_effective_timestamp) as task_completion_date
FROM task_status_done
UNION
SELECT taskid, TO_DATE(begin_effective_timestamp) as task_completion_date
FROM task_percentage_done
UNION
SELECT taskid, TO_DATE(actualcompletiondate) as task_completion_date
FROM task_completion_date_exists
)
) tasks_done ON ac.taskid = tasks_done.taskid
WHERE uc.hometeamid is not null
GROUP BY uc.hometeamid, uc.userid, TO_DATE(tasks_done.task_completion_date)
팀 사용자의 작업 완료 이벤트
WITH task_status_done as (
SELECT
taskid,
status,
begin_effective_timestamp
FROM (
SELECT
taskid,
status,
begin_effective_timestamp,
lag(status, 1, 'NOSTATUS') OVER (PARTITION BY taskid ORDER BY begin_effective_timestamp) as previous_status
FROM tasks_event te
WHERE status = 'CPL'
)
WHERE status != previous_status
), task_percentage_done as (
SELECT
taskid,
percentcomplete,
begin_effective_timestamp
FROM (
SELECT
taskid,
percentcomplete,
begin_effective_timestamp,
lag(percentcomplete, 1, '0') OVER (PARTITION BY taskid ORDER BY begin_effective_timestamp) as previous_percent_complete
FROM tasks_event
WHERE TO_NUMBER(percentcomplete) = 100
)
WHERE percentcomplete != previous_percent_complete
), task_completion_date_exists as (
SELECT
taskid,
actualcompletiondate
FROM tasks_event
WHERE actualcompletiondate is not null
)
SELECT
tmc.teamid,
TO_DATE(tasks_done.task_completion_date),
count(tasks_done.taskid) as task_completed
FROM teammembers_current tmc
INNER JOIN teams_current tc ON tc.teamid = tmc.teamid and tc.teamtype != 'PROJECT'
INNER JOIN assignments_current ac ON tmc.userid = ac.assignedtoid
INNER JOIN (
SELECT distinct taskid, task_completion_date
FROM (
SELECT taskid, TO_DATE(begin_effective_timestamp) as task_completion_date
FROM task_status_done
UNION
SELECT taskid, TO_DATE(begin_effective_timestamp) as task_completion_date
FROM task_percentage_done
UNION
SELECT taskid, TO_DATE(actualcompletiondate) as task_completion_date
FROM task_completion_date_exists
)
) tasks_done ON ac.taskid = tasks_done.taskid
WHERE tmc.teamid is not null
GROUP BY tmc.teamid, TO_DATE(tasks_done.task_completion_date)
팀 사용자의 작업 완료 이벤트: 드릴다운
WITH task_status_done as (
SELECT
taskid,
status,
begin_effective_timestamp
FROM (
SELECT
taskid,
status,
begin_effective_timestamp,
lag(status, 1, 'NOSTATUS') OVER (PARTITION BY taskid ORDER BY begin_effective_timestamp) as previous_status
FROM tasks_event te
WHERE status = 'CPL'
)
WHERE status != previous_status
), task_percentage_done as (
SELECT
taskid,
percentcomplete,
begin_effective_timestamp
FROM (
SELECT
taskid,
percentcomplete,
begin_effective_timestamp,
lag(percentcomplete, 1, '0') OVER (PARTITION BY taskid ORDER BY begin_effective_timestamp) as previous_percent_complete
FROM tasks_event
WHERE TO_NUMBER(percentcomplete) = 100
)
WHERE percentcomplete != previous_percent_complete
), task_completion_date_exists as (
SELECT taskid, actualcompletiondate
FROM tasks_event
WHERE actualcompletiondate is not null
)
SELECT
tmc.teamid,
tmc.userid,
TO_DATE(tasks_done.task_completion_date),
count(tasks_done.taskid) as task_completed
FROM teammembers_current tmc
INNER JOIN teams_current tc ON tc.teamid = tmc.teamid AND tc.teamtype != 'PROJECT'
INNER JOIN assignments_current ac ON tmc.userid = ac.assignedtoid
INNER JOIN (
SELECT distinct taskid, task_completion_date
FROM (
SELECT taskid, TO_DATE(begin_effective_timestamp) as task_completion_date
FROM task_status_done
UNION
SELECT taskid, TO_DATE(begin_effective_timestamp) as task_completion_date
FROM task_percentage_done
UNION
SELECT taskid, TO_DATE(actualcompletiondate) as task_completion_date
FROM task_completion_date_exists
)
) tasks_done ON ac.taskid = tasks_done.taskid
WHERE tmc.teamid is not null
GROUP BY tmc.teamid, tmc.userid, TO_DATE(tasks_done.task_completion_date)
recommendation-more-help
5f00cc6b-2202-40d6-bcd0-3ee0c2316b43