如何按某些字段分组并在oracle中显示另一个字段的第一个值?

时间:2014-11-29 21:14:21

标签: oracle group-by

以下是分组后我正在查看的表格:

DATE:       TEST:   BUILD:  NUM:
17-FEB-14   testA   BUILDA  100
18-FEB-14   testA   BUILDA  20
20-FEB-14   testA   BUILDB  120

我按TEST,BUILD AND DATE进行分组。 这里的问题是, 关于BUILDA的testA上的一些子测试恰好是在2014年1月17日,有些是在2014年1月18日。 这会将与record1和record2相同的记录拆分。

我需要的只是第一次约会的总数:

DATE:       TEST:   BUILD:  NUM:
17-FEB-14   testA   BUILDA  120
20-FEB-14   testA   BUILDB  120

有什么方法可以实现这个目标吗?

查询很长,因此不会发布完整的查询。 但它看起来像:

SELECT r.RN_EXECUTION_DATE, t.TESTSETNAME, r.RN_BUILD_VERSION, r.rn_status, 
 COUNT(r.rn_run_id) AS run_count
 FROM table t, table r, (.........) tlf
 WHERE (........)

GROUP BY t.TESTSETNAME,
  r.RN_BUILD_VERSION,
  r.RN_EXECUTION_DATE,
  r.rn_status

ORDER BY t.TESTSETNAME,
  r.RN_BUILD_VERSION  
;

提前感谢, 的Manoj

1 个答案:

答案 0 :(得分:0)

您可以在日期列中使用聚合函数MIN:

SELECT MIN(r.RN_EXECUTION_DATE), t.TESTSETNAME, r.RN_BUILD_VERSION, r.rn_status, 
 COUNT(r.rn_run_id) AS run_count
 FROM table t, table r, (.........) tlf
 WHERE (........)

GROUP BY t.TESTSETNAME,
  r.RN_BUILD_VERSION,
  r.rn_status

ORDER BY t.TESTSETNAME,
  r.RN_BUILD_VERSION  
;