¿Cómo y cuándo utilizar Directiva de grupo por tener y distintasHAVING COUNT (*)> = 2
¿Quién dijo algo sobre las personas a cargo aquí? Nadie, es implícita. Verás, cada vez que cree un grupo, que "la tercera dimensión invisible" de las filas de ese grupo de componentes contiene una fila para cada elemento de ese grupo. Debido a que el grupo de las columnas que usted seleccione en la empresa y las tablas de los empleados, una fila constituyentes por cada persona dependiente está unido en la cláusula FROM. Así que la cláusula HAVING realiza sus cálculos y funciones en la "dimensión tercera invisible" de las filas constituyente "sesión detrás "de cada grupo. Tomemos, por lo tanto, la siguiente línea de código: HAVING COUNT (*)> = 2 Utilizando ese código en una lista, es como decir lo siguiente: Para cada grupo tenga al menos dos filas sesión constitutiva detrás de ella. Otra forma de visualizar la cláusula HAVING es pensar en ello como una cláusula WHERE que opera en las filas detrás de cada sesión constitutiva grupo. E.LastName Select + ',' + e.FirstName AS EmployeeName, count (*) como NumDependantsAdded13OrOlder de Empleado e INNER JOIN Dependiente SOBRE e.SSN d = d.SSN GRUPO POR e.LastName, e.FirstName ORDER BY EmployeeName ASC Ahora puede agregar una cláusula HAVING como se muestra en el código para que sólo se recuperan los empleados cuyo hijo dependiente fue añadido a la base de datos. E.LastName Select + ',' + e.FirstName AS EmployeeName, count (*) como NumDependantsAdded13OrOlder de Empleado e INNER JOIN dependiente d SOBRE e.SSN = d.SSN GRUPO POR e.LastName, e.FirstName habiendo Min (d.Age)> 13 ORDER BY EmployeeName ASC Agregado a los medios para reunir varios elementos en un todo. Una función de agregado opera en un conjunto de filas y devuelve un valor único que representa la suma de las filas. Por ejemplo, Avg (Salario) devuelve el salario medio de las filas de los trabajadores seleccionados, de modo Promedio () se considera una función de agregado. Las funciones de agregado son también conocidas como las funciones establecidas por operar sobre un conjunto de datos. La mejor manera de determinar cuando se puede y no puede utilizar las funciones de agregado consiste en escuchar atentamente la versión en idioma Inglés de la cuestión (es decir, la consulta) que usted está pidiendo a la base de datos. "¿Cuál es el salario promedio de todos los empleados nacidos después del 4 de julio 1975?" Es, por ejemplo, un sencillo, cuestión bien formados, por lo que cabe fácilmente en una instrucción SQL, como muestra el siguiente código: SELECT AVG (Sueldo) FROM Employee WHERE dateOfBirth> '07 / 04/1975 ' Pero lo que sobre "¿Cuál es el nombre de cada empleado y el salario promedio de todos los empleados nacidos después del 4 de julio 1975?" Es una pregunta válida? En realidad, se trata de dos cuestiones distintas que son extrañamente "aplastado" juntos. La siguiente consulta que trataría de responder a esta pregunta es igual de antinatural y, por tanto, arrojar un error: SELECT LastName + ',' + apellido AS EmployeeName, Avg (Salario) FROM Employee WHERE dateOfBirth> '07 / 04/1975 ' ¿Cómo se puede recuperar tanto los empleados y el promedio de todos los empleados como resultado de una consulta solo conjunto? ¡No puedes! Se trata de dos conjuntos diferentes de datos de dos dimensiones totalmente diferentes, y uno no tiene absolutamente nada que ver con la otra. El hecho de que ambas preguntas son acerca de los empleados no hace ninguna diferencia. Al igual que todas las funciones, el AVG () devuelve un valor único, en este caso, la media de los valores de la columna de sueldos para el conjunto de datos que se describen en la cláusula WHERE . Eso es un valor, lo que significa que aparece exactamente una vez en el resultado de la consulta final. En otras palabras, tiene una dimensión de una fila de una columna. Por otra parte, considerar la columna definido por el código siguiente: Apellidos + ',' + apellido AS EmployeeName EmployeeName no es una función, ni tampoco operar sobre un conjunto de datos. Como era de esperar, esta definición de la columna consulta devuelve un valor para cada fila de los datos descritos en la cláusula WHERE. En otras palabras, tiene una dimensión de n filas por una columna. Evidentemente, la función de promedio no puede coexistir con la visualización de las columnas en la misma instrucción SQL porque son de diferentes dimensiones. Estas mismas reglas de operación para mantener todas las funciones de agregado, como MIN (), MAX (), SUM (), y así sucesivamente. Si GROUP BY está presente en una sentencia SQL, el conjunto de datos a través de una función de conjunto, que opera los cambios de la que todo el conjunto de los datos descritos en la declaración por separado a cada conjunto de filas sesión constitutiva detrás de cada grupo. ¿Ven por qué que la visualización es tan útil? Al mostrar que la tercera dimensión invisible, ahora se puede visualizar el resultado de la función establecida para cada conjunto o grupo de filas en el conjunto de resultados. Si quiere encontrar el promedio de edad en la que el a cargo de cada empleado se registraron en la base de datos, por ejemplo, usted ejecutaría la siguiente consulta: E.LastName Select + ',' + e.FirstName AS EmployeeName, Avg (d.Age) como AverageAge de Empleado e INNER JOIN Dependiente d SOBRE e.SSN = d.SSN GRUPO POR e.LastName, e.FirstName Y el resultado sería el siguiente: EmployeeName AverageAge Churvis, Adam 55 Davidow, Allen 30 Silverberg, Betania, 15 Sanders, Billy 10 Thor, Dirk NULL Rodríguez, Kiki 17 Lester, Lance 1 Romanova, Natasha 38 Kayashunu, Oksal 10 Kokilas, Susan 2 Williger, Timmy 38 Haymen, Turk 16 Feuilliette, Valerie 59 un artículo presentado por Daniel Carlson Descargo de responsabilidad:Nuestro sitio web no es responsable por el contenido de este artículo. Webarticles es un recurso de información gratuito. Importante: Este artículo "¿Cómo y cuándo utilizar Directiva de grupo por tener y distinta", fue traducida por un software automático. Sentimos pena por los errores de ortografía que pueda haber ocurrido. Gracias por su comprensión.
|
|||||
| Online: 383 users browsing the articles directory |
|
|