viernes, 14 de junio de 2013

REGISTROS EN SQL, COUNT Y ORDER BY

Existen en SQL funciones que nos permiten contar registros, calcular sumas, promedios, obtener valores máximos y mínimos. Estas funciones se denominan funciones de agregado y operan sobre un conjunto de valores (registros), no con datos individuales y devuelven un único valor.Imaginemos que nuestra tabla "libros" contiene muchos registros. Para averiguar la cantidad sin necesidad de contarlos manualmente usamos la función "count()":

 select count(*)  from libros;

La función "count()" cuenta la cantidad de registros de una tabla, incluyendo los que tienen valor nulo.También podemos utilizar esta función junto con la cláusula "where" para una consulta más específica. Queremos saber la cantidad de libros de la editorial "Planeta":

select count(*)  from libros  where editorial='Planeta';

Para contar los registros que tienen precio (sin tener en cuenta los que tienen valor nulo), usamos la función "count()" y en los paréntesis colocamos el nombre del campo que necesitamos contar:

select count(precio)  from libros;

Note que "count(*)" retorna la cantidad de registros de una tabla (incluyendo los que tienen valor "null") mientras que "count(precio)" retorna la cantidad de registros en los cuales el campo "precio" no es nulo. No es lo mismo. "count(*)" cuenta registros, si en lugar de un asterisco colocamos como argumento el nombre de un campo, se contabilizan los registros cuyo valor en ese campo NO es nulo.


 CLAUSULA ORDER BY

Cómo ordenar una consulta de My SQL utilizando ORDER BY. Las filas de una consulta de My SQL SELECT se devuelven en un orden arbitrario e impredecible. Dado que el retorno tiene que ver más con el hash internas y algoritmos de búsqueda que con tus datos, el orden de las filas no suele ser útil para un programador. Para devolver las filas en un orden significativo, puedes utilizar la cláusula ORDER BY del comando SELEC

Instrucciones

1Forma el comando SELECT básico para devolver las filas en las que estés interesado. En este punto, el orden en que se devuelven las mismas no es de importancia. En este ejemplo se consulta una base de datos de clientes para obtener una lista de clientes con saldos negativos. Ejemplo: SELECT * FROM clientes WHERE balance <0.0;

2Agrega una cláusula ORDER BY. Esta le dirá al servidor My SQL que ordene las filas por una columna. Por ejemplo, si quieres ver todas las cuentas pendientes en orden de su balance, puedes agregar "ORDER BY balance" al final de la consulta. Ejemplo: SELECT * FROM clientes WHERE balance <0.0 ORDER BY balance;

3Define en qué dirección ordenar, ya que el orden de las filas devueltas aún podría no ser significativo. Las filas se pueden devolver en orden ascendente o descendente.

4Utiliza ASC o DESC. Utilizando ASC ordenarás los datos para que puedas ver el número más pequeño primero. Utilizando DESC ordenarás los datos para que puedas ver el mayor número primero. En esta consulta, se busca a los clientes con el mayor saldo negativo primero. ORDER BY devolverá los conjuntos con el mayor número negativo (el número más pequeño) en la parte superior. Ejemplo: SELECT * FROM clientes WHERE balance <0.0 ORDER BY balance ASC;

5Ordena por varias columnas, ya que a veces te encontrarás con grandes grupos de filas que fueron ordenadas en el mismo número. Por ejemplo, si hay 100 clientes en tu base de datos con un saldo de 0, los mismos aparecen en orden arbitrario. Es mejor tener al menos dos criterios de clasificación para situaciones como ésta.

6Utiliza múltiples criterios de clasificación separados por comas. Aquí, los clientes se muestran en orden alfabético por el nombre después de haber sido ordenados por el balance. Ejemplo: SELECT * FROM clientes WHERE balance < 0.0 ORDER BY balance, nombre ASC;.



Ejemplo Orden ascendente

"SELECT nombre_columna FROM nombre_tabla ORDER BY column_name ASC

Esto seleccionará los registros de mysql de forma ascendente 


                                 Los registros fueron ordenados por id ascendiendo

Ejemplo Orden Descendente


"SELECT nombre_columna FROM nombre_tabla ORDER BY column_name DESC";

Esto seleccionará los registros de mysql descendiendo
                                           Los registros fueron ordenados por id descendiendo







No hay comentarios:

Publicar un comentario