2017-05-31 118 views
0

我在從Oracle數據庫中的後續方式中的數據:平均符合條件的Oracle

check   HR  Serie  Name 
14:00:31 13:59:19 6120  A 
14:10:31 13:59:21 6120  A 
14:00:31 13:57:19 6120  A 
14:04:01 14:02:00 6120  B 
14:06:01 14:02:14 6120  B 
14:04:01 14:04:00 6120  B 
14:04:01 14:02:00 7100  A 
14:08:01 14:03:00 7100  A 
14:04:01 14:04:00 7100  A 

我要計算的列「人力資源」的平均每個系列和名稱(兩者),但如果只有列檢查的值是相同的

其結果將是:

check  AVG(HR) Serie  Name 
14:00:31 13:58:19 6120  A 
14:00:31 14:03:00 6120  B 
14:04:01 14:03:00 7100  A 

這裏是我的代碼:

SELECT 
    TO_CHAR(TRUNC(SysDate) + (AVG(TO_NUMBER(TO_CHAR(TO_DATE(TO_CHAR(HR, 'HH24:MI:SS'), 'HH24:MI:SS'), 'SSSSS'))/60))/24/60, 'hh24:mi:ss'), Serie,Name 
from table 
group by Serie, name 

的問題,我估計即使值列檢查不同的是平均

+0

所以,你說你想讓計算也通過'check'進行分組? – JohnHC

回答

1

在包括checkGROUP BY子句並添加一個HAVING子句,該子句將檢查重複項:

SELECT check, 
     TO_CHAR(TRUNC(SYSDATE) + AVG(HR - TRUNC(HR)), 'HH24:MI:SS') 
     AS "AVG(HR)", 
     serie, 
     name 
GROUP BY check, serie, name 
HAVING COUNT(*) > 1 
+0

請問您可以查看我最後一個問題:/ –

0

感謝你的答案,但有可能已識別的重複,因爲每一個系列的名字我有4個結果,並在最後我想有結果:

check   HR  Serie  Name 
14:00:31 13:58:19 6120  A 
14:12:31 14:03:00 6120  B 
14:10:31 13:59:21 6120  A (duplicate) 
14:04:01 14:03:00 6120  B (duplicate) 

並具有相同後,結果,但重複?而@MTO我沒有不明白爲什麼你添加count(*)> 1如果添加它,有什麼區別?