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`;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章