Qué es uno mismo en Python: ejemplos del mundo real
Qué es uno mismo en Python: ejemplos del mundo real
En este tutorial, analizaremos algunas formas en las que podemos usar o ejecutar la cláusula HAVING en funciones agregadas de SQL . El uso de esta cláusula en funciones agregadas de SQL puede ser de gran ayuda en el resumen de datos.
La cláusula HAVING es casi similar a la declaración WHERE y también se puede ejecutar junto con ella.
Discutiremos sus correlaciones y diferencias proporcionando ejemplos a medida que avanzamos en este tutorial.
Tabla de contenido
Declaraciones GROUP BY y WHERE en SQL
Para nuestro primer ejemplo, discutiremos cómo ejecutar la cláusula WHERE y GROUP BY usando la tabla de muestra a continuación. Tenga en cuenta que solo podemos usar la cláusula WHERE con columnas existentes y no solo en funciones agregadas.
Digamos que queremos obtener las ventas totales de un producto en función de su columna SaleAmount donde el valor es mayor que 2 . Para obtener el resultado, nuestro comando debe ser el siguiente:
Primero, seleccionamos ProductName y agregamos SaleAmount para obtener TotalSales.
Luego, usamos la declaración WHERE aquí ya que estamos tratando de obtener solo los productos donde SaleAmount es mayor que 2. El comando 'GROUP BY ProductName' indica que agrupará las filas debajo de la columna ProductName en una sola.
Al ejecutar nuestro conjunto de comandos, veremos que de todos los datos en las columnas ProductName y SaleAmount , solo se muestran la bombilla y el ventilador . Eso se debe a que eran los únicos que tenían un SaleAmount superior a 2.
En este ejemplo, la declaración WHERE es para filtrar resultados con una columna existente, que es nuestro SaleAmount . Además, tenga en cuenta que la declaración WHERE aparece antes de GROUP BY y no se puede usar para filtrar funciones agregadas. Por otro lado, la cláusula HAVING aparece después de GROUP BY y se usa para filtrar en función de una función agregada.
Cláusula GROUP BY y HAVING en SQL
En este ejemplo, vamos a demostrar la diferencia entre la instrucción WHERE y la cláusula HAVING . Usaremos el mismo objetivo que tenemos en el ejemplo anterior para que podamos comparar y evaluar los resultados.
Primero mostremos los productos con sus ventas totales usando el siguiente comando. Como puede ver, nuestro primer comando sigue siendo el mismo que nuestro primer comando que ejecuta la instrucción WHERE .
Si vamos a ejecutar nuestros primeros dos comandos, tendremos el siguiente resultado:
Ahora, digamos que solo queremos mostrar productos cuya venta total sea superior a 5. No podemos usar la declaración WHERE ya que solo se puede usar con columnas existentes. Por lo tanto, necesitamos usar la cláusula HAVING ya que filtraremos desde una función agregada.
Observe cómo usamos la cláusula HAVING después de GROUP BY a diferencia de la declaración WHERE que se usa antes de GROUP BY. Esto se debe a que SQL agrupará los registros antes de evaluar la cláusula HAVING .
Luego, ejecutemos esos comandos junto con HAVING SUM(SaleAmount)>5 . Después de especificar que queremos obtener solo aquellos productos cuyo precio total sea superior a 5, notaremos que en nuestra tabla de resultados actual, ya no veremos el Bolígrafo . Eso es porque su total es menos de 5 .
En resumen, cuando queremos filtrar datos de nuestra tabla en función de una columna existente, usamos la cláusula WHERE , mientras que cuando queremos filtrar datos de una función agregada, usamos la cláusula HAVING .
Cláusula HAVING y WHERE en SQL Server Management Studio (SSMS)
Ahora, avanzaremos discutiendo y demostrando cómo podemos ejecutar la cláusula HAVING en SQL Server Management Studio (SSMS). También abordaremos la diferencia entre la cláusula HAVING y la cláusula WHERE proporcionando ejemplos.
A continuación se muestra nuestra muestra de datos SalesOrderHeader. Estos datos consisten en 100 filas. Para nuestro ejemplo, queremos obtener TotalSale por CustomerID donde TotalSale es mayor que 10000 . Tenga en cuenta que la venta total se basa en la suma de los valores de la columna TotalDue .
Primero, permítanme demostrar por qué no podemos usar la cláusula WHERE cuando queremos filtrar en una función agregada según nuestro ejemplo anterior.
Usaremos el conjunto de comandos de muestra de la imagen a continuación. Como puede ver, técnicamente tenemos el mismo conjunto de comandos que el que tenemos en nuestro primer ejemplo.
Sin embargo, cuando hacemos clic en Ejecutar en la esquina superior izquierda, dará como resultado un error porque no podemos usar la cláusula WHERE sola cuando estamos filtrando en la función agregada.
Para corregir el error, necesitamos filtrar el resultado usando la cláusula HAVING en lugar de la cláusula WHERE . Nuestro nuevo conjunto de comandos debería ser similar a la imagen de abajo.
Ahora, podemos ver que nuestro error ha sido corregido y contiene los resultados por CustomerID con un TotalSale mayor a 10000 .
Nuevamente, la cláusula WHERE siempre se usa antes de la cláusula GROUP BY , mientras que la cláusula HAVING siempre se usa después de la cláusula GROUP BY .
Uso de la cláusula HAVING y la cláusula WHERE en SQL
Para este ejemplo, digamos que queremos usar la cláusula WHERE y HAVING al mismo tiempo. Intentemos obtener TotalSale por CustomerID donde TotalSale es mayor que 10000 pero solo con clientes donde su TerritoryID es igual a 1 .
Dado que queremos filtrar los resultados con clientes que tienen 1 como TerritoryID , usaremos la cláusula WHERE. Entonces nuestro comando debería ser el mismo que el anterior. Nuevamente, hemos agregado una cláusula WHERE antes de la cláusula GROUP BY.
Por ahora, no podemos ver mucha diferencia entre nuestro resultado anterior y este nuevo. Sin embargo, si observa detenidamente la esquina inferior derecha, ahora solo tenemos 64 filas en comparación con la anterior con 505 filas de datos. Esto se debe a que los resultados también se filtran según su TerritoryID .
Conclusión
Para resumir, solo podemos usar la cláusula WHERE con columnas existentes. Si necesitamos filtrar con funciones agregadas, debemos usar la cláusula HAVING en su lugar.
El uso de la cláusula HAVING en funciones agregadas de SQL y la práctica de formas de ejecutar la cláusula HAVING y la cláusula WHERE juntas pueden brindar comodidad a los usuarios cuando trabajan con una gran cantidad de datos o registros.
Espero haberle proporcionado suficiente información y comprensión sobre cómo usar la cláusula HAVING en las funciones agregadas de SQL. Si desea obtener más información sobre este tema y otro contenido relacionado, puede consultar la lista de enlaces relevantes a continuación.
Mis mejores deseos,
Hafiz
Qué es uno mismo en Python: ejemplos del mundo real
Aprenderá a guardar y cargar objetos desde un archivo .rds en R. Este blog también cubrirá cómo importar objetos desde R a LuckyTemplates.
En este tutorial del lenguaje de codificación DAX, aprenda a usar la función GENERAR y a cambiar dinámicamente el título de una medida.
Este tutorial cubrirá cómo usar la técnica de elementos visuales dinámicos de subprocesos múltiples para crear información a partir de visualizaciones de datos dinámicos en sus informes.
En este artículo, repasaré el contexto del filtro. El contexto del filtro es uno de los temas principales que cualquier usuario de LuckyTemplates debería conocer inicialmente.
Quiero mostrar cómo el servicio en línea de LuckyTemplates Apps puede ayudar a administrar diferentes informes e información generada a partir de varias fuentes.
Aprenda a calcular los cambios de su margen de beneficio utilizando técnicas como la bifurcación de medidas y la combinación de fórmulas DAX en LuckyTemplates.
Este tutorial analizará las ideas de materialización de cachés de datos y cómo afectan el rendimiento de DAX al proporcionar resultados.
Si todavía usa Excel hasta ahora, este es el mejor momento para comenzar a usar LuckyTemplates para sus necesidades de informes comerciales.
¿Qué es la puerta de enlace de LuckyTemplates? Todo lo que necesitas saber