🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: chile.comp.programacion
8 messages
8 total messages Started by Chano Mon, 17 Dec 2007 14:25
Como hacer consulta sql
#717
Author: Chano
Date: Mon, 17 Dec 2007 14:25
44 lines
2083 bytes
  Teno una tabla con dos campos Hora, Telefono y Resultado

Quiero sacar estadisticas sobre resultados por cada hora.
Para sacar el total de llamadas por hora hago
select hora, count(*) from Tabla group by hora;

y sale algo del estilo

+-----------------+
| Hora | count(*) |
+-----------------+
| 00   |        6 |
| 01   |        2 |
...
+-----------------+

  Si quiero consultar por un resultado especifico

select hora, count(*) from Tabla where Resultado=0 group by hora;

  La duda es: como puedo hacer una consulta que me retorne de una sola vez 
ambas consultas en la misma tabla? O sea algo así:

+-----------------+-------+
| Hora | Total    |Res=0  |
+-----------------+-------+
| 00   |        6 |     3 |
| 01   |        2 |     2 |
...
+-----------------+-------+

  Intenté con union, pero si es que no hay llamadas con Res=0 a alguna 
hora, ambas consultas tienen distinta cantidad de columnas.

  Ideas?

Gracias.


-- 
Chano
jgarrido[@]dcc.uchile.cl
Re: Como hacer consulta sql
#718
Author: Luis León Cárdenas Graide
Date: Mon, 17 Dec 2007 15:48
59 lines
2719 bytes
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

El Lun 17 Dic 2007 11:25 escuch� un rumor en chile.comp.programacion donde
Chano dijo:

>   Teno una tabla con dos campos Hora, Telefono y Resultado
> 
> Quiero sacar estadisticas sobre resultados por cada hora.
> Para sacar el total de llamadas por hora hago
> select hora, count(*) from Tabla group by hora;
> 
> y sale algo del estilo
> 
> +-----------------+
> | Hora | count(*) |
> +-----------------+
> | 00   |        6 |
> | 01   |        2 |
> ...
> +-----------------+
> 
>   Si quiero consultar por un resultado especifico
> 
> select hora, count(*) from Tabla where Resultado=0 group by hora;
> 
>   La duda es: como puedo hacer una consulta que me retorne de una sola vez
> ambas consultas en la misma tabla? O sea algo as�:
> 
> +-----------------+-------+
> | Hora | Total    |Res=0  |
> +-----------------+-------+
> | 00   |        6 |     3 |
> | 01   |        2 |     2 |
> ...
> +-----------------+-------+
> 
>   Intent� con union, pero si es que no hay llamadas con Res=0 a alguna
> hora, ambas consultas tienen distinta cantidad de columnas.
> 
>   Ideas?
> 
> Gracias.


Probaste haciendo un JOIN entre ambas queryes?

- -- 
Luis Le�n C�rdenas Graide - www.linkedin.com/in/luiscardenasgraide
PGP FingerPrint: 437E 48AB 0093 62AC 07DA F016 EBD8 DBD3 2ECE 5829
Linux User #415.072 - http://counter.li.org
liberaciondigital.org: Ciudadanos frente a las pol�ticas tecnol�gicas
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)

iD8DBQFHZpo269jb0y7OWCkRAjHBAJ9qXdSnGLdwf9UQ8ppVbz2Y7NLUxQCfQmQy
Y9c0AZPQYeUkeQsnXyPF36g=
=jKKg
-----END PGP SIGNATURE-----
Re: Como hacer consulta sql
#719
Author: achesere
Date: Mon, 17 Dec 2007 20:18
1 lines
906 bytes
Qu� motor de base de datos utilizas? 
Re: Como hacer consulta sql
#720
Author: Ricardo Lemus
Date: Mon, 17 Dec 2007 22:00
45 lines
2390 bytes
Chano <chanorecords@gmail.nospam.com> dijo:
>   Teno una tabla con dos campos Hora, Telefono y Resultado

> Quiero sacar estadisticas sobre resultados por cada hora.
> Para sacar el total de llamadas por hora hago
> select hora, count(*) from Tabla group by hora;

> y sale algo del estilo

> +-----------------+
> | Hora | count(*) |
> +-----------------+
> | 00   |        6 |
> | 01   |        2 |
> ...
> +-----------------+

>   Si quiero consultar por un resultado especifico

> select hora, count(*) from Tabla where Resultado=0 group by hora;

>   La duda es: como puedo hacer una consulta que me retorne de una sola vez 
> ambas consultas en la misma tabla? O sea algo as?:

> +-----------------+-------+
> | Hora | Total    |Res=0  |
> +-----------------+-------+
> | 00   |        6 |     3 |
> | 01   |        2 |     2 |
> ...
> +-----------------+-------+

>   Intent? con union, pero si es que no hay llamadas con Res=0 a alguna 
> hora, ambas consultas tienen distinta cantidad de columnas.

>   Ideas?

En postgres, tu amigo es 'LEFT JOIN'


-- 
Ricardo J. Lemus C. [Linux-user: 54183] [rlemus[@]dcc.uchile.cl.NOALSPAM]
"Laziness is a very important system administrative virtue" from
Essential System Administration, 2nd Ed. by AEllen Frisch, O'Reilly &
Associates, p. 342.
Re: Como hacer consulta sql
#721
Author: mauricio sthandier r.
Date: Tue, 18 Dec 2007 00:28
50 lines
2190 bytes
SELECT hora, COUNT(*), ISNULL(SUM(CASE resultado WHEN 0 THEN 1 ELSE 0 END),0) FROM #temp
GROUP BY hora

debiera servir en mySQL... aunque hay muchas diferencias de la 3 a la 5

saludos,

"Chano" <chanorecords@gmail.NOSPAM.com> escribi� en el mensaje news:fk60s1$sne$1@localhost.localdomain...
  Teno una tabla con dos campos Hora, Telefono y Resultado

Quiero sacar estadisticas sobre resultados por cada hora.
Para sacar el total de llamadas por hora hago
select hora, count(*) from Tabla group by hora;

y sale algo del estilo

+-----------------+
| Hora | count(*) |
+-----------------+
| 00   |        6 |
| 01   |        2 |
...
+-----------------+

  Si quiero consultar por un resultado especifico

select hora, count(*) from Tabla where Resultado=0 group by hora;

  La duda es: como puedo hacer una consulta que me retorne de una sola vez
ambas consultas en la misma tabla? O sea algo as�:

+-----------------+-------+
| Hora | Total    |Res=0  |
+-----------------+-------+
| 00   |        6 |     3 |
| 01   |        2 |     2 |
...
+-----------------+-------+

  Intent� con union, pero si es que no hay llamadas con Res=0 a alguna
hora, ambas consultas tienen distinta cantidad de columnas.

  Ideas?

Gracias.


-- 
Chano
jgarrido[@]dcc.uchile.cl 
Re: Como hacer consulta sql
#569
Author: Mauricio Gomez
Date: Tue, 18 Dec 2007 02:57
56 lines
2276 bytes
Se me ocurre algo asi


select   Hora,
   (select count(1) from llamada where hora = ll.hora)
          Total,
   (select count(1) from llamada where hora = ll.hora and resultado = 0)
         "Res=0"
from
          llamada ll
order by hora;


rro


Chano wrote:
>   Teno una tabla con dos campos Hora, Telefono y Resultado
> 
> Quiero sacar estadisticas sobre resultados por cada hora.
> Para sacar el total de llamadas por hora hago
> select hora, count(*) from Tabla group by hora;
> 
> y sale algo del estilo
> 
> +-----------------+
> | Hora | count(*) |
> +-----------------+
> | 00   |        6 |
> | 01   |        2 |
> ...
> +-----------------+
> 
>   Si quiero consultar por un resultado especifico
> 
> select hora, count(*) from Tabla where Resultado=0 group by hora;
> 
>   La duda es: como puedo hacer una consulta que me retorne de una sola vez 
> ambas consultas en la misma tabla? O sea algo as�:
> 
> +-----------------+-------+
> | Hora | Total    |Res=0  |
> +-----------------+-------+
> | 00   |        6 |     3 |
> | 01   |        2 |     2 |
> ...
> +-----------------+-------+
> 
>   Intent� con union, pero si es que no hay llamadas con Res=0 a alguna 
> hora, ambas consultas tienen distinta cantidad de columnas.
> 
>   Ideas?
> 
> Gracias.
> 
> 
Re: Como hacer consulta sql
#570
Author: Mauricio Gomez
Date: Tue, 18 Dec 2007 02:59
59 lines
2408 bytes
Eso de que tienes dos campos: hora, telefono y resultado, me suena a que 
el sobrino del pato donald son dos: hugo paco y luis.

Se me ocurre algo asi


select   Hora,
   (select count(1) from llamada where hora = ll.hora)
          Total,
   (select count(1) from llamada where hora = ll.hora and resultado = 0)
         "Res=0"
from
          llamada ll
order by hora;


rro


Chano wrote:
>   Teno una tabla con dos campos Hora, Telefono y Resultado
> 
> Quiero sacar estadisticas sobre resultados por cada hora.
> Para sacar el total de llamadas por hora hago
> select hora, count(*) from Tabla group by hora;
> 
> y sale algo del estilo
> 
> +-----------------+
> | Hora | count(*) |
> +-----------------+
> | 00   |        6 |
> | 01   |        2 |
> ...
> +-----------------+
> 
>   Si quiero consultar por un resultado especifico
> 
> select hora, count(*) from Tabla where Resultado=0 group by hora;
> 
>   La duda es: como puedo hacer una consulta que me retorne de una sola vez 
> ambas consultas en la misma tabla? O sea algo as�:
> 
> +-----------------+-------+
> | Hora | Total    |Res=0  |
> +-----------------+-------+
> | 00   |        6 |     3 |
> | 01   |        2 |     2 |
> ...
> +-----------------+-------+
> 
>   Intent� con union, pero si es que no hay llamadas con Res=0 a alguna 
> hora, ambas consultas tienen distinta cantidad de columnas.
> 
>   Ideas?
> 
> Gracias.
> 
> 
Re: Como hacer consulta sql
#576
Author: Knock_
Date: Wed, 19 Dec 2007 17:23
57 lines
2645 bytes
no tantas en realidad, sigue siendo ANSI Sql not full implemented yet =)

"mauricio sthandier r." <quiltro@animalplanet.com> wrote in message 
news:fk748h$92n$1@aioe.org...
> SELECT hora, COUNT(*), ISNULL(SUM(CASE resultado WHEN 0 THEN 1 ELSE 0 
> END),0) FROM #temp
> GROUP BY hora
>
> debiera servir en mySQL... aunque hay muchas diferencias de la 3 a la 5
>
> saludos,
>
> "Chano" <chanorecords@gmail.NOSPAM.com> escribi� en el mensaje 
> news:fk60s1$sne$1@localhost.localdomain...
>  Teno una tabla con dos campos Hora, Telefono y Resultado
>
> Quiero sacar estadisticas sobre resultados por cada hora.
> Para sacar el total de llamadas por hora hago
> select hora, count(*) from Tabla group by hora;
>
> y sale algo del estilo
>
> +-----------------+
> | Hora | count(*) |
> +-----------------+
> | 00   |        6 |
> | 01   |        2 |
> ...
> +-----------------+
>
>  Si quiero consultar por un resultado especifico
>
> select hora, count(*) from Tabla where Resultado=0 group by hora;
>
>  La duda es: como puedo hacer una consulta que me retorne de una sola vez
> ambas consultas en la misma tabla? O sea algo as�:
>
> +-----------------+-------+
> | Hora | Total    |Res=0  |
> +-----------------+-------+
> | 00   |        6 |     3 |
> | 01   |        2 |     2 |
> ...
> +-----------------+-------+
>
>  Intent� con union, pero si es que no hay llamadas con Res=0 a alguna
> hora, ambas consultas tienen distinta cantidad de columnas.
>
>  Ideas?
>
> Gracias.
>
>
> -- 
> Chano
> jgarrido[@]dcc.uchile.cl
> 
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads