pg.ddx.io pgsql-sql@postgresql.org mailing list archive
help / color / mirror / Atom feedQuery information needed
3+ messages / 3 participants
[nested] [flat]
* Query information needed
@ 2005-10-13 12:50 djzanky@gmail.com
2005-10-18 23:40 ` Re: Query information needed Michael Glaesemann <grzm@myrealbox.com>
2005-10-19 07:44 ` Re: Query information needed Oliver Elphick <olly@lfix.co.uk>
0 siblings, 2 replies; 3+ messages in thread
From: djzanky@gmail.com @ 2005-10-13 12:50 UTC (permalink / raw)
To: pgsql-sql
Dear all,
I have a table created with this specifications:
CREATE TABLE cdr (
calldate timestamp with time zone NOT NULL default now(),
clid varchar(80) NOT NULL default '',
src varchar(80) NOT NULL default '',
dst varchar(80) NOT NULL default '',
dcontext varchar(80) NOT NULL default '',
channel varchar(80) NOT NULL default '',
dstchannel varchar(80) NOT NULL default '',
lastapp varchar(80) NOT NULL default '',
lastdata varchar(80) NOT NULL default '',
duration bigint NOT NULL default '0',
billsec bigint NOT NULL default '0',
disposition varchar(45) NOT NULL default '',
amaflags bigint NOT NULL default '0',
accountcode varchar(20) NOT NULL default '',
uniqueid varchar(32) NOT NULL default '',
userfield varchar(255) NOT NULL default ''
);
I want to extract the number of calls placed in 1 hour and the average
call duration
I'm working with this query:
SELECT date_trunc('hour',calldate), duration FROM cdr WHERE src=601
ORDER BY calldate;
i tried several other queries but i'm not able to count the number of
calls in an hour (better in a time interval) and calculate the average
duration.
Any suggestions would be appreciated! Tnx
^ permalink raw reply [nested|flat] 3+ messages in thread
* Re: Query information needed
2005-10-13 12:50 Query information needed djzanky@gmail.com
@ 2005-10-18 23:40 ` Michael Glaesemann <grzm@myrealbox.com>
1 sibling, 0 replies; 3+ messages in thread
From: Michael Glaesemann @ 2005-10-18 23:40 UTC (permalink / raw)
To: djzanky@gmail.com; +Cc: pgsql-sql
On Oct 13, 2005, at 21:50 , djzanky@gmail.com wrote:
> Dear all,
>
> I have a table created with this specifications:
>
> CREATE TABLE cdr (
> calldate timestamp with time zone NOT NULL default now(),
> clid varchar(80) NOT NULL default '',
> src varchar(80) NOT NULL default '',
> dst varchar(80) NOT NULL default '',
> dcontext varchar(80) NOT NULL default '',
> channel varchar(80) NOT NULL default '',
> dstchannel varchar(80) NOT NULL default '',
> lastapp varchar(80) NOT NULL default '',
> lastdata varchar(80) NOT NULL default '',
> duration bigint NOT NULL default '0',
> billsec bigint NOT NULL default '0',
> disposition varchar(45) NOT NULL default '',
> amaflags bigint NOT NULL default '0',
> accountcode varchar(20) NOT NULL default '',
> uniqueid varchar(32) NOT NULL default '',
> userfield varchar(255) NOT NULL default ''
> );
>
> I want to extract the number of calls placed in 1 hour and the average
> call duration
>
> I'm working with this query:
>
> SELECT date_trunc('hour',calldate), duration FROM cdr WHERE src=601
> ORDER BY calldate;
>
> i tried several other queries but i'm not able to count the number of
> calls in an hour (better in a time interval) and calculate the average
> duration.
For a first step, I'd build a view of
create view cdr_by_hour_view as
select date_trunc('hour,calldate) as callhour, duration
from cdr;
Then I'd select from this view using aggregates:
select callhour, avg(duration) as avg_duration
from cdr
where src = 601
group by callhour;
You could write it
This should help you with the simple case of just hourly averages.
For averages on any given interval I think it's a bit more involved
(as general cases generally are).
Hope this helps!
Michael Glaesemann
grzm myrealbox com
^ permalink raw reply [nested|flat] 3+ messages in thread
* Re: Query information needed
2005-10-13 12:50 Query information needed djzanky@gmail.com
@ 2005-10-19 07:44 ` Oliver Elphick <olly@lfix.co.uk>
1 sibling, 0 replies; 3+ messages in thread
From: Oliver Elphick @ 2005-10-19 07:44 UTC (permalink / raw)
To: djzanky@gmail.com; +Cc: pgsql-sql
On Thu, 2005-10-13 at 05:50 -0700, djzanky@gmail.com wrote:
> Dear all,
>
> I have a table created with this specifications:
>
> CREATE TABLE cdr (
> calldate timestamp with time zone NOT NULL default now(),
> clid varchar(80) NOT NULL default '',
> src varchar(80) NOT NULL default '',
> dst varchar(80) NOT NULL default '',
> dcontext varchar(80) NOT NULL default '',
> channel varchar(80) NOT NULL default '',
> dstchannel varchar(80) NOT NULL default '',
> lastapp varchar(80) NOT NULL default '',
> lastdata varchar(80) NOT NULL default '',
> duration bigint NOT NULL default '0',
> billsec bigint NOT NULL default '0',
> disposition varchar(45) NOT NULL default '',
> amaflags bigint NOT NULL default '0',
> accountcode varchar(20) NOT NULL default '',
> uniqueid varchar(32) NOT NULL default '',
> userfield varchar(255) NOT NULL default ''
> );
>
> I want to extract the number of calls placed in 1 hour and the average
> call duration
>
> I'm working with this query:
>
> SELECT date_trunc('hour',calldate), duration FROM cdr WHERE src=601
> ORDER BY calldate;
>
> i tried several other queries but i'm not able to count the number of
> calls in an hour (better in a time interval) and calculate the average
> duration.
For any particular interval:
SELECT COUNT(*), AVG(duration)
FROM cdr
WHERE src='601' AND
calldate BETWEEN CAST ('2005-10-17 10:00:00' AS TIMESTAMP WITH TIMEZONE) AND
CAST ('2005-10-17 10:59:59' AS TIMESTAMP WITH TIMEZONE);
--
Oliver Elphick olly@lfix.co.uk
Isle of Wight http://www.lfix.co.uk/oliver
GPG: 1024D/A54310EA 92C8 39E7 280E 3631 3F0E 1EC0 5664 7A2F A543 10EA
========================================
Do you want to know God? http://www.lfix.co.uk/knowing_god.html
^ permalink raw reply [nested|flat] 3+ messages in thread
end of thread, other threads:[~2005-10-19 07:44 UTC | newest]
Thread overview: 3+ messages (download: mbox mbox.gz follow: Atom feed)
-- links below jump to the message on this page --
2005-10-13 12:50 Query information needed djzanky@gmail.com
2005-10-18 23:40 ` Michael Glaesemann <grzm@myrealbox.com>
2005-10-19 07:44 ` Oliver Elphick <olly@lfix.co.uk>
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox