Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
breakoutModefull-width
languagesql
with sprints_results as ( -- velocity by sprints
select
s.name,
s.start_date,
(select sum(story_points) from Ticket t where s.id = any(t.sprints)) as story_points
from Sprint s
order by s.start_date
), rolling_avg_sprints as ( -- rolling average velocity by sprints (3 sprints)
select
name,
avg(story_points) over (ORDER BY start_date ROWS BETWEEN 2 PRECEDING AND CURRENT ROW) as rolling_average,
start_date
from sprints_results)
select -- percentage of how current avg velocity is more than previous avg velocity
name as "Sprint Name",
rolling_average * 100 / (first_value(rolling_average) over (order by start_date ROWS between 1 preceding AND 1 preceding)) as "Velocity Trend, %"
from rolling_avg_sprints

...

Custom burnup chart (without forecast)

Code Block
-- Generate scope
with scope as (
select key, created from ticket
    --, release r
    -- WHERE r.id = ANY(ticket.fix_releases) and r.name = 'version 1.15.2'
),
 
-- Generate ticket snaphsots
snapshots as (
    select * from ticket_snapshots(ARRAY(select key from scope), 'week')
),
 
-- Generate days
days as(
    select generate_series( 
            (select date_trunc('day', min(created)) from scope),
            date_trunc('day', now()),                                                          
            '1 week') as start
                                 
),
 
-- Get snapshot actual by each date
snapshot_on_day as(
    select snapshots.key as key, max(snapshots.snapshot_created) as created, days.start as day from snapshots, days
    where snapshots.snapshot_created < days.start
    group by snapshots.key, days.start
),
 
-- Generate done count by date
done as(
    select count(distinct snapshot_on_day.key) as done_count, snapshot_on_day.day as start from snapshots sn
    inner join snapshot_on_day
    on sn.key = snapshot_on_day.key
    and sn.snapshot_created = snapshot_on_day.created
    where is_done(sn)
    group by snapshot_on_day.day
),
 
-- Generate created count by date
created as(
    select count(distinct key) as created_count, days.start from scope, days
    where created < days.start
    group by days.start )
 
select created.created_count, done.done_count, created.start as startdate from created left outer join done on done.start = created.start order by startdate


Insert excerpt
Integrations
Integrations
nameCopyright
nopaneltrue

...