我想对sql oracle不同行进行分组

时间:2018-10-09 09:14:50

标签: sql oracle pentaho

我想按“ Facturacion”和MotorFacturaciónDrools分组。我有这个sql:

SELECT c.cname                   AS componente, 
       w.timeworked / 3600       AS horas, 
       Sum(w.timeworked / 3600) 
         OVER ()                 AS sum_tipo, 
       Sum(w.timeworked / 3600) 
         OVER ( 
           partition BY c.cname) AS sum_by_component 
FROM   jira.jiraissue j, 
       jira.worklog w, 
       jira.project p, 
       jira.issuetype t, 
       jira.component c, 
       jira.nodeassociation na 
WHERE  w.issueid = j.id 
       AND J.project = P.id 
       AND na.source_node_id = j.id 
       AND na.sink_node_entity = 'Component' 
       AND na.source_node_entity = 'Issue' 
       AND na.sink_node_id = c.id 
       AND t.id = j.issuetype 
       AND p.pname = 'Area Económica' 
       AND t.pname = 'Bug' 
       AND w.startdate BETWEEN To_date('01/10/2018', 'dd/mm/yyyy') AND 
                               To_date('09/10/2018', 'dd/mm/yyyy') 

结果是这样的:

enter image description here

如果我选择的内容与众不同,则可以将其分组,但是某些行无法捕获。结果是这样的:enter image description here

我要退出HORAS列,仅观看2行

2 个答案:

答案 0 :(得分:0)

使用不同的

SELECT distinct c.cname AS componente,             
       Sum(w.timeworked / 3600) OVER ()  AS sum_tipo, 
       Sum(w.timeworked / 3600) 
     OVER ( 
       partition BY c.cname) AS sum_by_component 
FROM   jira.jiraissue j, 
       jira.worklog w, 
       jira.project p, 
       jira.issuetype t, 
       jira.component c, 
       jira.nodeassociation na 
WHERE  w.issueid = j.id 
       AND J.project = P.id 
       AND na.source_node_id = j.id 
       AND na.sink_node_entity = 'Component' 
       AND na.source_node_entity = 'Issue' 
       AND na.sink_node_id = c.id 
       AND t.id = j.issuetype 
       AND p.pname = 'Area Económica' 
       AND t.pname = 'Bug' 
       AND w.startdate BETWEEN To_date('01/10/2018', 'dd/mm/yyyy') AND 
                               To_date('09/10/2018', 'dd/mm/yyyy')

答案 1 :(得分:0)

您已经回答了自己的问题由于您想退出列专栏,请从选择中删除以下行,并使用distinct。

  w.timeworked / 3600       AS horas,