2012-02-16 72 views
-1

這是我的以下sql查詢。查詢中時間戳/日期時間的平均值?請幫忙?

select a.job_name,endtime,to_char(endtime,'HH24:MI:SS') as endtime_1 
    from OPTOOLS.R11_JOB_PROD_VW a, OPTOOLS.R11_JOB_RUNS_PROD_VW b 
    where 
    a.joid=b.joid and a.job_name in ('hh_p_hkc_isrs_gim_trd_ld_bx') and rownum <= 30 
    and status = 'SUCCESS' 
    order by endtime desc; 

請幫我找到上述query.I的結束時間平均需要這個urgently.Anybody誰是SQL好,可以請你修改我的查詢&帖吧。

我發現平均時間戳很難處理。

+0

你的問題被標記'mysql',但'to_char'看起來相當Oraclish給我。 – 2012-02-16 07:41:47

回答

0
SELECT a.job_name, AVG(endtime) 
FROM (...) 
WHERE (...) 
GROUP BY a.job_name 
4

您可以在AVG聚合函數的幫助下完成此操作。但這還不夠。首先,您必須將TIMESTAMP轉換爲數字,然後使用AVG功能。

從手冊 - SUM()和AVG()聚合函數不適用於時間值。 (它們將值轉換爲數字,這會在第一個非數字字符後丟失該部分。)要解決此問題,可以將其轉換爲數值單位,執行聚合操作,然後轉換回臨時值。

因此,嘗試這樣的事情 -

SELECT 
    FROM_UNIXTIME(AVG(UNIX_TIMESTAMP(endtime))) 
FROM 
    ... 
    ... 
    ... 
+0

它似乎離開.0000有沒有辦法在最後刪除.0000? – CMCDragonkai 2014-03-12 11:01:47