Modo de empleo por grupo, que tiene, y el orden de las cláusulas sql

Video: Videotutorial 15 ASP y SQL Server

SQL le da opciones para recuperar, analizar y mostrar la información que necesita con el GROUP BY, HAVING y ORDER BY cláusulas. Estos son algunos ejemplos de cómo puede utilizarlos.

Cláusulas GROUP BY

A veces, en lugar de recuperar los registros individuales, desea saber algo acerca de un grupo de registros. los AGRUPAR POR cláusula es la herramienta que necesita.

Suponga que usted es el gerente de ventas de otro lugar, y que desea buscar en el rendimiento de su fuerza de ventas. Si lo hace un simple SELECCIONAR, como por ejemplo la siguiente consulta:

Video: Sub Select em tabelas de histórico - SQL Aula 08

InvoiceNo SELECT, Fecha de Venta, vendedor, TotalSaleFROM ventas-

Este resultado le da una idea de qué tan bien los vendedores están haciendo porque muy pocas ventas totales están involucrados. Sin embargo, en la vida real, una compañía tendría muchas más ventas - y no sería tan fácil decir si se están cumpliendo los objetivos de ventas.

Video: How Donald Trump Answers A Question

Para hacer el análisis real, se puede combinar el AGRUPAR POR cláusula con una de las agregar funciones (también llamados funciones de ajuste) Para obtener una imagen cuantitativa del rendimiento de las ventas. Por ejemplo, puede ver qué vendedor está vendiendo más de los objetos de alto precio rentable mediante el uso de la media (AVGfunción) como sigue:

Vendedor SELECT, AVG (VentaTotal) a partir de SalesGroup POR Salesperson-

Ejecutar la consulta con un sistema de gestión de base de datos diferente sería recuperar el mismo resultado, pero puede parecer un poco diferente.

El valor promedio de las ventas de Bennett es considerablemente mayor que la de los otros dos vendedores. Se trata de comparar las ventas totales con una consulta similar:

Vendedor SELECT, SUM (VentaTotal) a partir de SalesGroup POR Salesperson-

Bennett también tiene las ventas totales más altas, lo cual es consistente con que tiene el promedio de ventas más altos.

HAVING

Puede analizar los datos agrupados aún más mediante el uso de la TENIENDO cláusula. los TENIENDO cláusula es un filtro que actúa similar a un DÓNDE cláusula, sino en grupos de filas en lugar de en filas individuales. Para ilustrar la función de la TENIENDO cláusula, supongamos que el gerente de ventas considera Bennett estar en una clase por sí mismo.

Su actuación distorsiona los datos globales de la otra vendedores. (Aha -. Una curva-grúa) Puede excluir las ventas de Bennett de los datos agrupados mediante el uso de una TENIENDO cláusula como sigue:

Vendedor SELECT, SUM (VentaTotal) a partir de SalesGroup POR SalespersonHAVING Vendedor lt; gt; `Bennett`-

Sólo las filas donde el vendedor no es Bennett se consideran.

Cláusulas ORDER BY

Utilizar el ORDER BY cláusula para mostrar la tabla de salida de una consulta, ya sea en orden ascendente o descendente alfabético. Mientras que el AGRUPAR POR cláusula reúne filas en grupos y ordena los grupos en orden alfabético, ORDER BY ordena las filas individuales. los ORDER BY cláusula debe ser la última cláusula que especifique en una consulta.

Si la consulta contiene también una AGRUPAR POR cláusula, la cláusula organiza primero las filas de salida en grupos. los ORDER BY cláusula continuación, ordena las filas dentro de cada grupo. Si no tiene AGRUPAR POR cláusula, entonces la sentencia considera toda la tabla como un grupo, y el ORDER BY cláusula ordena todas sus filas de acuerdo a la columna (o columnas) que la ORDER BY cláusula especifica.

Para ilustrar este punto, considere los datos de la tabla de ventas. La tabla contiene columnas para VENTAS Factura no, Fecha de venta, vendedor, y Venta total. Si se utiliza el siguiente ejemplo, se ve todos los datos en la tabla de ventas - pero en un orden arbitrario:

SELECT * FROM VENTAS -

En una implementación, este puede ser el orden en que se insertan las líneas en la mesa- en otra aplicación, el orden puede ser el de las actualizaciones más recientes. La orden también puede cambiar de forma inesperada si alguien reorganiza físicamente la base de datos. Esa es una razón por lo general es una buena idea para especificar el orden en que desea que las filas.

Es posible, por ejemplo, querer ver las filas en orden por la Fecha de venta Me gusta esto:

SELECT * FROM órdenes de venta al Fecha de Venta -

Este ejemplo devuelve todas las filas de la tabla de ventas con el fin de Fecha de venta.

Para filas con el mismo Fecha de venta, el orden predeterminado depende de la implementación. Puede, sin embargo, especificar cómo ordenar las filas que comparten el mismo Fecha de venta. Es posible que desee ver las ventas de cada Fecha de venta en orden por Factura no, como sigue:

* SELECT órdenes de venta al Fecha de Venta, InvoiceNo -

En este ejemplo se ordena primero por las ventas Fecha de venta- a continuación, para cada Fecha de venta, ordena las ventas por Factura no. Pero no hay que confundir ese ejemplo con la siguiente consulta:

SELECT * FROM VENTAS POR ORDEN InvoiceNo, Fecha de Venta -

Esta consulta ordena primero por las ventas FACTURA NO. Luego, para cada diferente Factura no, la consulta ordena a las ventas por Fecha de venta. Esto probablemente no producirá el resultado deseado, porque es poco probable que existan múltiples fechas de venta para un único número de factura.

La consulta siguiente es otro ejemplo de cómo se puede devolver datos SQL:

SELECT * FROM VENTAS ORDEN por vendedor, Fecha de Venta -

Este ejemplo primeras órdenes de vendedor y luego por Fecha de venta. Después nos fijamos en los datos en ese orden, es posible que desee invertirlo, de la siguiente manera:

Video: 33. Programación en Java || Ciclos || Ejercicio - Calcular el promedio de N números

SELECT * FROM órdenes de venta al Fecha de Venta, Vendedor -

Este ejemplo ordena las filas primera por Fecha de venta y luego por vendedor.

Todos estos ejemplos de pedidos son en orden ascendente (ASC) Orden, que es el orden predeterminado. El último SELECCIONAR muestra las ventas anteriores en primer lugar - y, dentro de un plazo determinado y muestra las ventas para ‘Adams’ antes de `Panadero`. Si prefiere descendente (DESC) Pedido, puede especificar el orden de una o más de las columnas de orden, de la siguiente manera:

SELECT * FROM SalesOrder POR DESC Fecha de Venta, Vendedor de ASC -

En este ejemplo se especifica un orden descendente de las fechas de venta, que muestra las ventas más recientes primero, y un orden ascendente para los vendedores, poniéndolos en orden alfabético. Eso te dará una mejor idea de cómo el rendimiento de Bennett acumula en contra de la de los otros vendedores.

Artículos Relacionados