forked from cncf/gitdm
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathknown_committers.sql
More file actions
97 lines (97 loc) 路 2.25 KB
/
Copy pathknown_committers.sql
File metadata and controls
97 lines (97 loc) 路 2.25 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
with commits as (
select committer_id as actor_id,
dup_committer_login as actor,
event_id
from
gha_commits
where
committer_id is not null
and (lower(dup_committer_login) {{exclude_bots}})
union select author_id as actor_id,
dup_author_login as actor,
event_id
from
gha_commits
where
author_id is not null
and (lower(dup_author_login) {{exclude_bots}})
union select actor_id,
dup_actor_login as actor,
id as event_id
from
gha_events
where
type in ('PushEvent')
and (lower(dup_actor_login) {{exclude_bots}})
), known_commits as (
select distinct c.committer_id as actor_id,
c.dup_committer_login as actor,
c.event_id
from
gha_commits c,
gha_actors_affiliations aa
where
c.committer_id is not null
and (lower(c.dup_committer_login) {{exclude_bots}})
and c.committer_id = aa.actor_id
union select distinct c.author_id as actor_id,
c.dup_author_login as actor,
c.event_id
from
gha_commits c,
gha_actors_affiliations aa
where
c.author_id is not null
and (lower(c.dup_author_login) {{exclude_bots}})
and c.author_id = aa.actor_id
union select distinct e.actor_id,
e.dup_actor_login as actor,
e.id as event_id
from
gha_events e,
gha_actors_affiliations aa
where
e.type in ('PushEvent')
and (lower(e.dup_actor_login) {{exclude_bots}})
and e.actor_id = aa.actor_id
), committers as (
select actor,
count(distinct event_id) as commits
from
commits
group by
actor
order by
commits desc
), known_committers as (
select actor,
count(distinct event_id) as commits
from
known_commits
group by
actor
order by
commits desc
), all_commits as (
select sum(commits) as cnt
from
committers
)
select
row_number() over cumulative_commits as rank_number,
c.actor,
c.commits,
round((c.commits * 100.0) / a.cnt, 5) as percent,
sum(c.commits) over cumulative_commits as cumulative_sum,
round((sum(c.commits) over cumulative_commits * 100.0) / a.cnt, 5) as cumulative_percent,
a.cnt as all_commits
from
known_committers c,
all_commits a
window
cumulative_commits as (
order by c.commits desc, c.actor asc
range between unbounded preceding
and current row
)
;