如何在MySQL中按增量变量分组
我正在做一个Bug度量报告。我需要一些定制的表,但是我的查询没有给出预期的输出 我的查询给出了输出。因此,我希望独立柱值必须按项目分组,但它也在计算其他项目值如何在MySQL中按增量变量分组,mysql,Mysql,我正在做一个Bug度量报告。我需要一些定制的表,但是我的查询没有给出预期的输出 我的查询给出了输出。因此,我希望独立柱值必须按项目分组,但它也在计算其他项目值 **Current Output** ********************************************* |Project | Opened | Resolved| Outstanding | ********************************************* | A |
**Current Output**
*********************************************
|Project | Opened | Resolved| Outstanding |
*********************************************
| A | 1 | 0 | 1 |
*********************************************
| A | 2 | 1 | 2 |
*********************************************
| A | 1 | 2 | 1 |
*********************************************
| B | 3 | 2 | 2 |
*********************************************
| B | 2 | 1 | 3 |
*********************************************
我想输出像,突出的价值应该为每个项目分别计算。确切地说,当涉及到项目“B”时,它应该显示属于它的唯一未完成的值,而不是添加以前的项目未完成的值
**Expected Output**
*********************************************
|Project | Opened | Resolved| Outstanding |
*********************************************
| A | 1 | 0 | 1 |
*********************************************
| A | 2 | 1 | 2 |
*********************************************
| A | 1 | 2 | 1 |
*********************************************
| B | 3 | 2 | 1 |
*********************************************
| B | 2 | 1 | 2 |
*********************************************
我要分组的1列-杰出
2增量变量-@runtot
3未完成的计算-@runtot:=jtb.Opened+@runtot-jtb.Resolved为未完成
我的问题是:
请帮助我:最后,这给出了一个解决方案。我在查询中又添加了一个全局变量,用于更新项目名称。因此,当一个新项目到达@prev_项目时,它将刷新@runtot=0
查询对我有用:-
请阅读。现在,你的问题中缺少一些样本数据。没有它,你真的很难知道你想从我们这里得到什么。现在一切都好了?如果需要更改,请告诉我。感谢url@waka。图片上的输出与您尝试的查询的输出不匹配,您的查询中有不同的字段。另外,请将结果包括为文本,不包括为图像,并包括产生您收到的结果的样本数据。谢谢@Shadow,我已经删除了我查询中的额外列。为了便于理解,我上传了一张图片,但此后我会在提问时进行更改。
SELECT jtb.Project,jtb.Opened,jtb.Resolved,
(@runtot := (jtb.Opened + @runtot) - jtb.Resolved) AS Outstanding FROM
(SELECT ji.project AS Project_Id,
pr.pname AS Project_Name,
COUNT(DISTINCT(ji.ID)) AS Opened,
COUNT(IF(ji.issuestatus = 5 OR ji.issuestatus = 6,ji.issuestatus,NULL)) AS Resolved
FROM jiraissue ji
LEFT OUTER JOIN priority p ON (p.ID = ji.priority)
LEFT OUTER JOIN project pr ON (ji.project = pr.ID)
GROUP BY ji.project) jtb,
(SELECT @runtot:=0) c
SELECT jtb.Project,jtb.Opened,jtb.Resolved,
(@runtot := IF(jtb.Project = @prev_project, ((@runtot+jtb.Opened ) -
jtb.Resolved),(jtb.Opened - jtb.Resolved))) AS Outstanding,
@prev_project := jtb.Project AS sample_project_name FROM
(SELECT ji.project AS Project_Id,
pr.pname AS Project_Name,
COUNT(DISTINCT(ji.ID)) AS Opened,
COUNT(IF(ji.issuestatus = 5 OR ji.issuestatus = 6,ji.issuestatus,NULL)) AS Resolved
FROM jiraissue ji
LEFT OUTER JOIN project pr ON (ji.project = pr.ID)
GROUP BY ji.project) jtb,
(SELECT @runtot:=0, @prev_project := NULL) c