Re: Consulta de conexiones simultáneas

From: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
To: Julio Ríos <julio(dot)rios(at)amic(dot)es>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Consulta de conexiones simultáneas
Date: 2005-12-01 11:23:49
Message-ID: 20051201112349.GB25498@surnet.cl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Julio Ríos escribió:
> Hola tengo una tabla con la siguiente información,
>
> Tipo de llamada
> Número de teléfono llamador,
> Número de teléfono llamante,
> Fecha de comienzo de comunicación,
> Tiempo de comunicación, (en segundos)
> y más campos

> Estoy buscando la forma de hacer una sentencia select para conseguir el
> número de llamadas simultáneas que se hacen en un día o en una hora.

Select count(*)
from tabla de llamadas
where (fecha de comienzo, fecha de comienzo + duracion)
overlaps
(inicio del dia, fin del dia)
group by ...

(observa que esto no toma en cuenta si la llamada empezo el dia anterior
y se extendio para terminar ese dia; si una llamada dura dos dias puede
aparecer contada dos veces)

Si quieres tener el total para todos los intervalos del mes, primero te
haces una funcion que devuelva todos los dias del mes, que es trivial
con generate_series(). Luego

select funcion_de_intervalos().inicio, count(*)
from tabla de llamadas, funcion_de_intervalos()
where (fecha de comienzo, fecha de comienzo + duracion)
overlaps
(funcion_de_intervalos().inicio, funcion_de_intervalos().fin)
group by ...

> Lo que me interesa es saber cual es el pico máximo de llamadas
> simultáneas que efectúa mi centralita.

Para esto puedes tomar la segunda consulta de arriba y hacer un
SELECT MAX(...) FROM (la consulta de arriba)

--
Alvaro Herrera http://www.CommandPrompt.com/
The PostgreSQL Company - Command Prompt, Inc.

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Jaime Casanova 2005-12-01 12:25:41 Re: tablespaces
Previous Message Julio Ríos 2005-12-01 07:39:38 Consulta de conexiones simultáneas