Activity by team queries
You can use the queries in this article to create data visualizations similar to those in Enhanced Analytics.
IMPORTANT
Queries will produce similar results to those shown in Enhanced Analytics, but they may not match exactly.
Prerequisites
Before you begin, you must
-
Establish a connection with your Business Intelligence (BI) tool:
Once you establish a connection, you can use the queries in this article to extract and visualize data.
Home Teams’ users’ login events
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)
Home Teams’ users’ login events: drill down
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’ users’ login events
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)
Teams’ users’ login events: drill down
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)
Home Teams’ users’ task status change events
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)
Home Teams’ users’ task status change events: drill down
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)
Teams’ users’ task status change events
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)
Teams’ users’ task status change events: drill down
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)
Home Teams’ users’ task completion events
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)
Home Teams’ users’ task completion events: drill down
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)
Teams’ users’ task completion events
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)
Teams’ users’ task completion events: drill down
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