Inteligencia

Páginas: 8 (1967 palabras) Publicado: 19 de mayo de 2011
10. Funciones de agregación
Podemos aplicar ciertas funciones matemáticas a todo un conjunto de datos de una tabla. Por ejemplo, podemos saber cual es la edad más baja de entre las personas que tenemos en nuestra base de datos, haríamos:
select min(edad) from personas;

Las funciones de agregación más habituales son:
* min = mínimo valor
* max = máximo valor
*sum = suma de los valores
* avg = media de los valores
* count = cantidad de valores
La forma más habitual de usar "count" es pidiendo con "count(*)" que se nos muestren todos los datos que cumplen una condición. Por ejemplo, podríamos saber cuantas personas tienen una dirección que comience por la letra "s", así:
select count(*) from personas where direccion like's%';

11. Cero y valor nulo
En ocasiones querremos dejar un campo totalmente vacío, sin valor. Para las cadenas de texto, existe una forma "parecida" de conseguirlo, que es con una cadena vacía, indicada con dos comillas que no contengan ningún texto entre ellas (ni siquiera espacios en blanco): '' ; En cambio, para los números, no basta con guardar un 0 para indicar que no se sabe el valor: no eslo mismo un importe de 0 euros que un importe no detallado. Por eso, existe un símbolo especial para indicar cuando no existe valor en un campo.
Este símbolo especial es la palabra NULL. Por ejemplo, añadiríamos datos parcialmente en blanco a una tabla haciendo
insert into personas
(nombre, direccion, edad)
values (
'pedro', NULL, NULL
);

Para saber si algún campoestá vacío, compararíamos su valor con NULL, pero de una forma un tanto especial: no con el símbolo "igual" (=), sino con la palabra IS. Por ejemplo, sabríamos cuales de las personas de nuestra bases de datos tienen dirección usando
select * from personas
where direccion is not null;

Y, de forma similar, sabríamos quien no tiene dirección, así:
select * frompersonas
where direccion is null;

12. Resultados agrupados
Puede ocurrir que no nos interese un único valor agrupado (el total, la media, la cantidad de datos), sino el resultado para un grupo de datos. Por ejemplo: saber no sólo la cantidad de clientes que hay registrados en nuestra base de datos, sino también la cantidad de clientes que viven en cada ciudad.
La forma de obtener subtotaleses creando grupos con la orden "group by", y entonces pidiendo una valor agrupado (count, sum, avg, ...) para cada uno de esos grupos. Por ejemplo, en nuestra tabla "personas", podríamos saber cuantas personas aparecen de cada edad, con:
select count(*), edad from personas group by edad;

13. Cómo filtrar los datos agrupados
Podemos llegar más allá: podemos no trabajar con todos los gruposposibles, sino sólo con los que cumplen alguna condición.
La condición que se aplica a los grupos no se indica con "where", sino con "having" (que se podría traducir como "los que tengan..."). Por ejemplo, podríamos saber la cantidad de personas que tenemos con cada edad, pero considerando sólo las mayores de 24 años:
select count(*), edad from personas group by edad having edad > 24;
14.Subconsultas
A veces tenemos que realizar operaciones más complejas con los datos, operaciones en las que nos interesaría ayudarnos de una primera consulta auxiliar que extrajera la información en la que nos queremos basar. Esta consulta auxiliar recibe el nombre de "subconsulta" o "subquery".
Por ejemplo, si queremos saber qué clientes tenemos en la ciudad que más habitantes tenga, la forma"razonable" de conseguirlo sería saber en primer lugar cual es la ciudad que más habitantes tenga, y entonces lanzar una segunda consulta para ver qué clientes hay en esa ciudad.
Como la estructura de nuestra base de datos de ejemplo es muy sencilla, no podemos hacer grandes cosas, pero un caso parecido al anterior (aunque claramente más inútil) podría ser saber qué personas tenemos almacenadas que...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • La inteligencia
  • Inteligencia
  • Inteligencia
  • la inteligencia
  • Inteligente
  • Inteligencia
  • inteligencia
  • inteligencias

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS