sonarqube 7.7指标信息拉取

主要表

projects:项目表

metrics:指标表 比如id为3的是代码行数 id为20是复杂度

project_measures : 项目与指标表的关系表 一个项目具体指标的值存储在此表

snapshots: 快照表,每次执行一次,都会在快照表插入一条记录

创建视图 v_project_measures

SELECT
projdesc.component_uuid,
projdesc.metric_id,
(
 case 
 when projdesc.metric_id = 33 
 THEN '测试覆盖率'
 when projdesc.metric_id = 52 
 THEN '重复率'
 when projdesc.metric_id = 72 
 THEN '异味'
 when projdesc.metric_id = 74 
 then 'bugs'
 when projdesc.metric_id = 75 
 then '新bugs'
 when projdesc.metric_id = 76 
 then '漏洞'
 when projdesc.metric_id = 77 
 then '新漏洞'
 end) as 'type',
MAX(projdesc.id) AS id
FROM snapshots snap
LEFT JOIN project_measures projdesc ON projdesc.component_uuid=snap.component_uuid
WHERE -- projdesc.component_uuid ="AWv04KutgA4KwXwXcb5N" AND projdesc.metric_id IN(74,76,72,33,52,75,77,98) and 
snap.islast=1
GROUP BY projdesc.component_uuid,projdesc.metric_id
ORDER BY projdesc.id DESC,snap.id DESC

拉取报表

select
projdesc.component_uuid,
p.`name`,
sum(case when projdesc.metric_id = 74 then projdesc.value else 0 end) as 'bugs',
sum(case when projdesc.metric_id = 76 then projdesc.value else 0 end) as '漏洞',
sum(case when projdesc.metric_id = 72 then projdesc.value else 0 end) as '异味',
sum(case when projdesc.metric_id = 33 then projdesc.value else 0 end) as '测试覆盖率',
sum(case when projdesc.metric_id = 52 then projdesc.value else 0 end) as '重复率',
sum(case when projdesc.metric_id = 75 then projdesc.variation_value_1 else 0 end) as '新bugs',
sum(case when projdesc.metric_id = 77 then projdesc.variation_value_1 else 0 end) as '新漏洞',
sum(case when projdesc.metric_id = 73 then projdesc.variation_value_1 else 0 end) as '新异味'
from 
project_measures projdesc,projects p
where 
projdesc.component_uuid=p.project_uuid
and p.scope='PRJ' 
and projdesc.id in(
select id from v_project_measures vpm
)
group by projdesc.component_uuid,p.`name`;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章