SQL - Contar totalidad de registros

 
Vista:

Contar totalidad de registros

Publicado por Jorge (6 intervenciones) el 27/11/2015 15:05:43
Estimados

Tengo que saber la totalidad de registros de una tabla, pero el problema que tengo es que COUNT(*) me pide que incluya la sentencia GROUP BY y no tengo un campo por el cual me agrupe toda la tabla. Ejemplo.

Tabla
Campo1 Campo2
a 1
b 1
b 2
c 3

Si realizo COUNT(*) GROUP BY Campo1 me devuelve
a 1
b 2
c 1
Si realizo COUNT(*) GROUP BY Campo2 me devuelve
2 1
1 2
1 3

Y lo que yo necesito es que me devuelva el numero 4.
Como debo hacer?

Mil gracias
Jorge
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 806
Bronce
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Contar totalidad de registros

Publicado por leonardo_josue (1173 intervenciones) el 27/11/2015 17:05:49
Hola Jorge:

Lo que preguntas es algo de nivel principiante, lo que me hace pensar que eres novato en esto de las consultas SQL... te recomiendo que antes de continuar con lo que estás haciendo le des una leída a cualquier libro o manual de SQL Básico, para que te evites dolores de cabeza.

Te comento que la función COUNT trabaja con o sin la cláusula GROUP BY, esto depende de cómo lo manejes en el SELECT... y sirve justamente para CONTAR Y AGRUPAR, es decir, hacer una especie de subtotales... tal como lo mencionas, estos serían los dos casos que estás teniendo;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
mysql> SELECT campo1, COUNT(*) FROM tabla GROUP BY campo1;
+--------+----------+
| campo1 | COUNT(*) |
+--------+----------+
| a      |        1 |
| b      |        2 |
| c      |        1 |
+--------+----------+
3 rows in set (0.00 sec)
 
mysql> SELECT campo2, COUNT(*) FROM tabla GROUP BY campo2;
+--------+----------+
| campo2 | COUNT(*) |
+--------+----------+
|      1 |        2 |
|      2 |        1 |
|      3 |        1 |
+--------+----------+
3 rows in set (0.00 sec)


Ahora bien, si lo que quieres es el total SIN AGRUPAR, entonces NO PONES LA CLAUSULA GROUP BY:

1
2
3
4
5
6
7
mysql> SELECT COUNT(*) FROM tabla;
+----------+
| COUNT(*) |
+----------+
|        4 |
+----------+
1 row in set (0.00 sec)

Mucho ojo, observa que en el select aparece el COUNT sólo, sin ningún otro campo... esta es la diferencia principal entre las dos formas de trabajar del COUNT, y lo mismo pasa con las otras funciones de agrupación (SUM, MIN, MAX, AVG, etc).

Insisto, esto es de nivel básico, checa los ejemplos que hay en internet, puedes preguntarle a SAN GOOGLE, él generalmente tiene la respuesta a todo.

Saludos
Leo,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar