2017-07-31 54 views
0

我创建了总结为各自的日期 - 时间间隔查询,转换间隔数PostgreSQL中

select sum(ts_polling)/count(ts_polling) as Average_Queue_Wait_Time , cast(time_start AS Date) 
    from callcent_queuecalls group by cast(time_start AS date) order by time_start DESC; 

enter image description here

有没有办法来Average_Queue_Wait_Time从间隔数据类型转换数字?

+0

https://stackoverflow.com/questions/952493/how-do-i-convert-an-interval-into-a - 数量与小时后,您可以检查这一点。 –

+0

它是什么数字?..秒数?..小时?.. –

+0

我想将avergae_queue_wait_time转换为整数值。 我尝试使用提取物的功能如下, 'SELECT EXTRACT(第二FROM(通过流延选择从callcent_queuecalls组总和(ts_polling)/计数(ts_polling) (TIME_START AS日期)))AS Queue_Wait_Time, 铸造(TIME_START AS DATE)AS DAYOFMONTH从callcent_queuecalls组由铸铁(TIME_START AS日期)ORDER BY CAST(TIME_START AS DATE)DESC' ---------- 返回以下错误, *** ********错误********** _ERROR:子查询返回多于一行用作表达式 SQL状态:2100_ – RKs

回答

0

你可以得到的秒数中的时间间隔是这样的:

SELECT EXTRACT(epoch FROM INTERVAL '1 day 30 minutes 1.234 seconds'); 

┌───────────┐ 
│ date_part │ 
├───────────┤ 
│ 88201.234 │ 
└───────────┘ 
(1 row) 
+0

是否可以在子查询上提取?例如,我运行以下语句,并导致错误'SELECT EXTRACT(第二个FROM(通过cast(time_start AS date))从callcent_queuecalls group中选择sum(ts_polling)/ count(ts_polling) ))AS Queue_Wait_Time, cast(time_start AS DATE )从callcent_queuecalls组中的DayOfMonth通过强制转换(time_start AS日期)通过强制转换(time_start AS DATE)DESC ' _ERROR:作为表达式使用的子查询返回多于一行SQL状态:2100_ – RKs

+0

您只能使用此类一个子查询,如果它返回最多一行。你应该使用'SELECT EXTRACT(第二个总和(ts_polling)/ count(ts_polling))FROM ...'。 –

+0

非常好!这给了我正在寻找的输出。我在配置数据库仪表板中使用了这个查询,它看起来很棒。谢谢你的帮助......干杯 – RKs