Categorías destacadas
programacion php    
Artículo
25
¡votar!

 Tutorial básico de MySQL

En esta página:


Conteo de filas

Las bases de datos son usadas frecuentemente para responder una pregunta, "¿Con qué frecuencia ocurre un cierto tipo de dato en una tabla?". Por ejemplo, tal vez queremos conocer cuántas mascotas tenemos, o cuántas mascotas tiene cada uno de los propietarios.

Contar el número total de animalitos que tenemos es lo mismo que hacer la siguiente pregunta "¿Cuántas filas hay en la tabla mascotas?" ya que hay un registro por mascota. La función COUNT( ) es la que nos ayuda en esta situación.

mysql> SELECT COUNT(*) FROM mascotas;
+----------+
| COUNT(*) |
+----------+
|        9 |
+----------+
1 row in set (0.00 sec)

Si deseamos conocer cuántas mascotas tiene cada uno de los propietarios, la consulta es la siguiente:

mysql> SELECT propietario, COUNT(*) FROM mascotas GROUP BY propietario ;
+-------------+----------+
| propietario | COUNT(*) |
+-------------+----------+
| Arnoldo     |        2 |
| Benito      |        2 |
| Diana       |        2 |
| Juan        |        1 |
| Omar        |        1 |
| Tomás       |        1 |
+-------------+----------+
6 rows in set (0.00 sec)

Se debe notar que se ha usado una cláusula GROUP BY para agrupar todos los registros de cada propietario. Si no hacemos esto, obtendremos un mensaje de error:

mysql> SELECT propietario, COUNT(*) FROM mascotas;    
ERROR 1140: Mixing of GROUP columns (MIN(),MAX(),COUNT()...) with no 
GROUP columns is illegal if there is no GROUP BY clause

En efecto, el uso de la función COUNT( ) en conjunto con la cláusula GROUP BY es muy útil en diversas situaciones. A continuación se muestran algunos ejemplos.

El número de animalitos por especie:

mysql> SELECT especie, COUNT(*) FROM mascotas GROUP BY especie ;
+-----------+----------+
| especie   | COUNT(*) |
+-----------+----------+
| Ave       |        2 |
| Gato      |        2 |
| Hamster   |        1 |
| Perro     |        3 |
| Serpiente |        1 |
+-----------+----------+
5 rows in set (0.00 sec)

El número de animalitos por sexo:

mysql> SELECT sexo, COUNT(*) FROM mascotas GROUP BY sexo:
+------+----------+
| sexo | COUNT(*) |
+------+----------+
| NULL |        1 |
| f    |        4 |
| m    |        4 |
+------+----------+
3 rows in set (0.01 sec)

El número de animalitos por combinación de especie y sexo:

mysql> SELECT especie, sexo, COUNT(*) FROM mascotas GROUP BY especie, sexo ;
+-----------+------+----------+
| especie   | sexo | COUNT(*) |
+-----------+------+----------+
| Ave       | NULL |        1 |
| Ave       | f    |        1 |
| Gato      | f    |        1 |
| Gato      | m    |        1 |
| Hamster   | f    |        1 |
| Perro     | f    |        1 |
| Perro     | m    |        2 |
| Serpiente | m    |        1 |
+-----------+------+----------+
8 rows in set (0.00 sec)

No es necesario que se obtengan todos los datos de una tabla cuando se usa la función COUNT( ). Por ejemplo, en la consulta anterior, para ver únicamente los datos de perritos y gatitos, la consulta queda de la siguiente manera:

mysql> SELECT especie, sexo, COUNT(*) FROM mascotas
-> WHERE especie="Perro" OR especie="Gato" 
-> GROUP BY especie, sexo;
+---------+------+----------+
| especie | sexo | COUNT(*) |
+---------+------+----------+
| Gato    | f    |        1 |
| Gato    | m    |        1 |
| Perro   | f    |        1 |
| Perro   | m    |        2 |
+---------+------+----------+
4 rows in set (0.00 sec)

O bien, si deseamos el número de animalitos por sexo, y cuyo sexo es conocido:

mysql> SELECT especie, sexo, COUNT(*) FROM mascotas
-> WHERE sexo IS NOT NULL
-> GROUP BY especie, sexo ;
+-----------+------+----------+
| especie   | sexo | COUNT(*) |
+-----------+------+----------+
| Ave       | f    |        1 |
| Gato      | f    |        1 |
| Gato      | m    |        1 |
| Hamster   | f    |        1 |
| Perro     | f    |        1 |
| Perro     | m    |        2 |
| Serpiente | m    |        1 |
+-----------+------+----------+
7 rows in set (0.00 sec)
Publicado por:
Jhonny Araujo
Recomendar
a un amigo
Compartir
en redes
 
Comentarios
 
BBDD
Entornos de desarrollo
Entretenimiento
Herramientas
Internet
Lenguajes de script
Lenguajes imperativos
Lenguajes orientados a objeto
Otros lenguajes
Plataformas
Teoría
Varios
Copyright © 1998-2011 Programación en Castellano. Todos los derechos reservados
Datos legales | Politica de privacidad | Contacte con nosotros | Publicidad

Diseño web y desarrollo web. Un proyecto de los hermanos Carrero.

Red internet:
Juegos gratis | Servidores dedicados
Más internet: Password | Directorio de weblogs | Favicon