Thread View: chile.comp.programacion
8 messages
8 total messages
Started by Chano
Mon, 17 Dec 2007 14:25
Como hacer consulta sql
Author: Chano
Date: Mon, 17 Dec 2007 14:25
Date: Mon, 17 Dec 2007 14:25
44 lines
2083 bytes
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
Author: Luis León Cárdenas Graide
Date: Mon, 17 Dec 2007 15:48
Date: Mon, 17 Dec 2007 15:48
59 lines
2719 bytes
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
Author: achesere
Date: Mon, 17 Dec 2007 20:18
Date: Mon, 17 Dec 2007 20:18
1 lines
906 bytes
906 bytes
Qu� motor de base de datos utilizas?
Re: Como hacer consulta sql
Author: Ricardo Lemus
Date: Mon, 17 Dec 2007 22:00
Date: Mon, 17 Dec 2007 22:00
45 lines
2390 bytes
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
Author: mauricio sthandier r.
Date: Tue, 18 Dec 2007 00:28
Date: Tue, 18 Dec 2007 00:28
50 lines
2190 bytes
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
Author: Mauricio Gomez
Date: Tue, 18 Dec 2007 02:57
Date: Tue, 18 Dec 2007 02:57
56 lines
2276 bytes
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
Author: Mauricio Gomez
Date: Tue, 18 Dec 2007 02:59
Date: Tue, 18 Dec 2007 02:59
59 lines
2408 bytes
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
Author: Knock_
Date: Wed, 19 Dec 2007 17:23
Date: Wed, 19 Dec 2007 17:23
57 lines
2645 bytes
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