我的查询中的时间戳/日期时间的平均值?请帮忙?

时间:2012-02-16 04:48:39

标签: mysql sql

这是我的以下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;

请帮我找到上述查询的平均结束时间。我急需这个。任何一个擅长sql的人,请你修改我的查询&amp;发布它。

我发现时间戳的平均值很难处理。

2 个答案:

答案 0 :(得分:5)

您可以借助AVG聚合功能完成此操作。但这还不够。首先,您必须将TIMESTAMP转换为数字,然后使用AVG函数。

从手册 - SUM()和AVG()聚合函数不适用于时间值。 (它们将值转换为数字,在第一个非数字字符后丢失该部分。)要解决此问题,您可以转换为数字单位,执行聚合操作,并转换回时间值。

所以,尝试这样的事情 -

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

答案 1 :(得分:0)

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