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.
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 |