count(*) en un group

08/11/2007 - 19:28 por rubenc | Informe spam
Hola
alguien pudiera decirme como obtener el numero total de registro de un selec
como este:

SELECT c1, year(f1), month(f1)
FROM tabla
GROUP BY c1, year(f1), month(f1)
HAVING count(*) > 0
and year(f1) = 2005 and month(f1)
order by c1

esta sentencia me agrupa los registros repetidos...

de hecho en la tabla tengo como 5000 registros y me lo agrupa como en 538
(porque se repite el campo c1 y la fecha)

si le digo select count(*) me da el total que agrupo por cada registro...
yo quiero que me diga el numero total de registros... en este ejemplo seria
538

tendria que leer registro por registro incrementando un contador hasta
llegar al fin del select... y eso es tardado

Muchas Gracias

Ruben Carreon
 

Leer las respuestas

#1 Carlos M. Calvelo
08/11/2007 - 20:02 | Informe spam
Hola Ruben,

On 8 nov, 19:28, rubenc wrote:
Hola
alguien pudiera decirme como obtener el numero total de registro de un selec
como este:

SELECT c1, year(f1), month(f1)
FROM tabla
GROUP BY c1, year(f1), month(f1)
HAVING count(*) > 0



Si quieres solo los repetidos tienes que usar
HAVING count(*) > 1.
El HAVING count(*) > 0 no hace nada.


and year(f1) = 2005 and month(f1)
order by c1

esta sentencia me agrupa los registros repetidos...

de hecho en la tabla tengo como 5000 registros y me lo agrupa como en 538
(porque se repite el campo c1 y la fecha)

si le digo select count(*) me da el total que agrupo por cada registro...
yo quiero que me diga el numero total de registros... en este ejemplo seria
538

tendria que leer registro por registro incrementando un contador hasta
llegar al fin del select... y eso es tardado




select count(*)
from ( <pon aquí tu select completo> ) A

Saludos,
Carlos

Preguntas similares