Una función agregada realiza cálculos en un grupo. Funciones agregadas en lenguaje SQL. Funciones agregadas COUNT y COUNT_BIG

Multiplicar y dividir fracciones.

¡Atención!
Hay adicionales
materiales en la Sección Especial 555.
Para los que son muy "no muy..."
Y para los que “mucho…”)

¡Esta operación es mucho mejor que la suma-resta! Porque es más fácil. Como recordatorio, para multiplicar una fracción por una fracción, debes multiplicar los numeradores (este será el numerador del resultado) y los denominadores (este será el denominador). Eso es:

Por ejemplo:

Todo es extremadamente simple. ¡Y por favor no busques un denominador común! No hay necesidad de él aquí...

Para dividir una fracción por una fracción, debes invertir segundo(¡Esto es importante!) fraccionarlos y multiplicarlos, es decir:

Por ejemplo:

Si te encuentras con multiplicaciones o divisiones con números enteros y fracciones, está bien. Al igual que con la suma, hacemos una fracción a partir de un número entero con uno en el denominador, ¡y adelante! Por ejemplo:

En la escuela secundaria, a menudo tienes que lidiar con fracciones de tres pisos (¡o incluso de cuatro pisos!). Por ejemplo:

¿Cómo puedo hacer que esta fracción parezca decente? ¡Sí, muy sencillo! Utilice división de dos puntos:

¡Pero no te olvides del orden de división! A diferencia de la multiplicación, ¡esto aquí es muy importante! Por supuesto, no confundiremos 4:2 o 2:4. Pero es fácil cometer un error en una fracción de tres pisos. Tenga en cuenta, por ejemplo:

En el primer caso (expresión de la izquierda):

En el segundo (expresión de la derecha):

¿Sientes la diferencia? 4 y 1/9!

¿Qué determina el orden de división? Ya sea con corchetes o (como aquí) con la longitud de las líneas horizontales. Desarrolla tu ojo. Y si no hay corchetes ni guiones, como:

luego divide y multiplica en orden, de izquierda a derecha!

Y también muy simple y técnica importante. En acciones con títulos, ¡te será de gran utilidad! Dividamos uno por cualquier fracción, por ejemplo, por 13/15:

¡El tiro se ha volcado! Y esto siempre sucede. Al dividir 1 por cualquier fracción, el resultado es la misma fracción, sólo que al revés.

Eso es todo para operaciones con fracciones. La cosa es bastante sencilla, pero da errores de sobra. tenga en cuenta consejos prácticos¡Y habrá menos (errores)!

Consejos prácticos:

1. ¡Lo más importante cuando se trabaja con expresiones fraccionarias es la precisión y la atención! esto no es palabras comunes¡No buenos deseos! ¡Esta es una necesidad extrema! Realice todos los cálculos del Examen Estatal Unificado como una tarea completa, enfocada y clara. Es mejor escribir dos líneas extra en un borrador que equivocarse al hacer cálculos mentales.

2. En ejemplos con diferentes tipos fracciones: vaya a fracciones ordinarias.

3. Reducimos todas las fracciones hasta que pare.

4. Reducimos expresiones fraccionarias de varios niveles a ordinarias usando división por dos puntos (¡seguimos el orden de división!).

5. Divide mentalmente una unidad por una fracción, simplemente dándole la vuelta a la fracción.

Estas son las tareas que definitivamente debes completar. Las respuestas se dan después de todas las tareas. Utilice los materiales sobre este tema y consejos prácticos. Calcula cuántos ejemplos pudiste resolver correctamente. ¡Bien a la primera! ¡Sin calculadora! Y sacar las conclusiones correctas...

Recuerde: la respuesta correcta es ¡Recibido por segunda (especialmente la tercera) vez no cuenta! Así de dura es la vida.

Entonces, resolver en modo examen ! Por cierto, esto ya es preparación para el Examen Estatal Unificado. Resolvemos el ejemplo, lo comprobamos, resolvemos el siguiente. Decidimos todo y volvimos a comprobar desde el principio hasta el último. y solo Entonces mira las respuestas.

Calcular:

¿Has decidido?

Estamos buscando respuestas que coincidan con las suyas. Las escribí deliberadamente en desorden, lejos de la tentación, por así decirlo... Aquí están, las respuestas, escritas con punto y coma.

0; 17/22; 3/4; 2/5; 1; 25.

Ahora sacamos conclusiones. Si todo salió bien, ¡me alegro por ti! ¡Los cálculos básicos con fracciones no son tu problema! Puedes hacer cosas más serias. Si no...

Entonces tienes uno de dos problemas. O ambas cosas a la vez.) Falta de conocimiento y (o) falta de atención. Pero... esto soluble problemas.

Si te gusta este sitio...

Por cierto, tengo un par de sitios más interesantes para ti).

Podrás practicar la resolución de ejemplos y descubrir tu nivel. Pruebas con verificación instantánea. Aprendamos, ¡con interés!)

Puede familiarizarse con funciones y derivadas.



  • Funciones agregadas se utilizan de manera similar a los nombres de campo en una instrucción SELECT, con una excepción: toman el nombre del campo como argumento. Con funciones SUMA Y AVG Sólo se pueden utilizar campos numéricos. Con funciones CUENTA, MAX y MIN Se pueden utilizar campos numéricos y de caracteres. Cuando se usa con campos de caracteres MÁXIMO Y MÍNIMO los traducirá al equivalente del código ASCII y los procesará en orden alfabético. Algunos DBMS permiten el uso de agregados anidados, pero esto es una desviación del estándar ANSI con todas las consecuencias consiguientes.


Por ejemplo, puede calcular la cantidad de estudiantes que realizaron exámenes en cada disciplina. Para hacer esto, debe ejecutar una consulta agrupada por el campo "Disciplina" y mostrar como resultado el nombre de la disciplina y el número de filas en el grupo para esta disciplina. Usar el carácter * como argumento para la función CONTAR significa contar todas las filas del grupo.

SELECCIONE R1. Disciplina, COUNT(*)

GRUPO POR R1.Disciplina;

Resultado:


SELECCIONAR R1.Disciplina, CONTAR (*)

DONDE R1. La evaluación NO ES NULA

GRUPO POR R1.Disciplina;

Resultado:


no se incluirá en el conjunto de tuplas antes de la agrupación, por lo que el número de tuplas en el grupo para la disciplina “Teoría de la Información” será 1 menos.

Se puede obtener un resultado similar si escribe la consulta de la siguiente manera:

SELECCIONE R1. Disciplina, CONTAR(R1. Calificación)

AGRUPAR POR R1. Disciplina;

Función RECUENTO (NOMBRE DEL ATRIBUTO) cuenta el número de valores específicos en un grupo, a diferencia de una función CONTAR(*), que cuenta el número de filas en un grupo. De hecho, en un grupo con la disciplina "Teoría de la información" habrá 4 líneas, pero solo 3 ciertos valores atributo "Calificación".


Reglas para manejar valores NULL en funciones agregadas

Si algún valor en la columna es igual NULO Al calcular el resultado de la función, se excluyen.

Si todos los valores de una columna son iguales NULO, Eso Promedio de suma máxima mínima = NULO cuenta = 0 (cero).

Si la mesa está vacía, contar(*) = 0 .

También puede utilizar funciones agregadas sin la operación de agrupación previa, en cuyo caso la relación completa se trata como un grupo y se puede calcular un valor por grupo para este grupo.

Reglas para interpretar funciones agregadas.

Las funciones agregadas se pueden incluir en la lista de salida y luego se aplican a toda la tabla.

SELECCIONAR MAX (Evaluación) de R1 dará puntuación máxima en la sesión;

SELECCIONAR SUMA (Puntuación) de R1 dará la suma de todas las calificaciones de la sesión;

SELECCIONE AVG (clasificación) de R1 dará una puntuación media de toda la sesión.


2; Resultado: "ancho="640"

Volviendo nuevamente a la base de datos “Sesión” (tabla R1), encontramos el número de exámenes aprobados con éxito:

SELECCIONE CONTAR(*) Como Entregado _ exámenes

DÓNDE Puntuación 2;

Resultado:


Los argumentos para agregar funciones pueden ser columnas de tabla individuales. Para calcular, por ejemplo, el número de valores distintos de una determinada columna en un grupo, debe utilizar la palabra clave DISTINCT junto con el nombre de la columna. Calculemos el número de calificaciones diferentes recibidas en cada disciplina:

SELECCIONAR R1.Disciplina, CONTAR (DISTINCT R1.Evaluación)

DONDE R1. La evaluación NO ES NULA

GRUPO POR R1.Disciplina;

Resultado:


Se obtiene el mismo resultado si excluimos la condición explícita en la parte WHERE, en cuyo caso la consulta se verá así:

SELECCIONE R1. Disciplina, CONTAR (DISTINCT R1. Evaluación)

AGRUPAR POR R1. Disciplina;

Función RECUENTO (DISTINCT R1.Evaluación) cuenta solo ciertos varios significados.

Para que en este caso se obtenga resultado deseado, debe hacerse pre-conversión Si cambia el tipo de datos de la columna "Puntuación" convirtiéndolo a un tipo real, el resultado del cálculo del promedio no será un número entero. En este caso, la solicitud se verá así:


2 Agrupar por R2. Grupo, R1. Disciplina; Aquí, la función CAST() convierte la columna Puntuación en un tipo de datos válido. "ancho="640"

Seleccione R2.Grupo, R1.Disciplina, Contar(*) como Total, AVG(emitir(Puntuación como decimal(3,1))) como Puntuación_promedio

Desde R1,R2

donde R1. Nombre completo = R2. Nombre completo y R1. la puntuación no es nula

y R1. Puntuación 2

Agrupar por R2. Grupo, R1. Disciplina;

Aquí está la función ELENCO() Convierte la columna Clasificación a un tipo de datos válido.


No puede utilizar funciones agregadas en una cláusula WHERE porque las condiciones de esta sección se evalúan en términos de una sola fila y las funciones agregadas se evalúan en términos de grupos de filas.

La cláusula GROUP BY le permite definir un subconjunto de los valores de un campo particular en términos de otro campo y aplicar una función agregada al subconjunto. Esto hace posible combinar campos y funciones agregadas en un solo cláusula SELECCIONAR. Las funciones agregadas se pueden usar tanto en la expresión para generar los resultados de la línea SELECT como en la expresión de la condición para procesar grupos HAVING formados. En este caso, cada función agregada se calcula para cada grupo seleccionado. Los valores obtenidos del cálculo de funciones agregadas se pueden utilizar para mostrar los resultados correspondientes o para condicionar la selección de grupos.

Creemos una consulta que muestre grupos en los que se recibió más de una mala calificación en una disciplina en los exámenes:


1; Resultado: "ancho="640"

SELECCIONE R2. Grupo

DESDE R1,R2

DONDE R1. Nombre completo = R2. Nombre completo Y

R1.Puntuación = 2

GRUPO POR R2.Grupo, R1.Disciplina

TENIENDO cuenta (*) 1;

Resultado:


Tenemos una base de datos "Banco", que consta de una tabla F, que almacena la relación F que contiene información sobre cuentas en sucursales de un determinado banco:

Encuentre el saldo total de las cuentas en las sucursales. Puede realizar una consulta separada para cada una de ellas seleccionando SUMA (Saldo) de la tabla para cada sucursal, pero la operación agrupaciones GRUPO BY te permitirá ponerlos todos en un solo comando:

SELECCIONAR Rama , SUMA( Resto )

GRUPO POR Sucursal;

Agrupar por aplica funciones agregadas de forma independiente a cada grupo identificado por el valor del campo Sucursal. El grupo está formado por líneas con el mismo valor Rama de campos y función SUMA se aplica por separado para cada grupo, es decir, el saldo total de la cuenta se calcula por separado para cada sucursal. El valor del campo al que se aplica. Agrupar por, por definición, tiene solo un valor por grupo de salida, al igual que el resultado de una función agregada.


5.000; Los argumentos en una cláusula HAVING siguen las mismas reglas que en una cláusula SELECT que usa GROUP BY. Deben tener un valor por grupo de salida. "ancho="640"

Supongamos que seleccionamos sólo aquellas sucursales cuyos saldos totales de cuentas superan los $5,000, así como los saldos totales de las sucursales seleccionadas. Para mostrar resultados para sucursales con saldos totales superiores a $5,000, debe usar la cláusula HAVING. La cláusula HAVING especifica los criterios utilizados para eliminar ciertos grupos de la salida, tal como lo hace la cláusula WHERE para filas individuales.

El comando correcto sería:

SELECCIONAR Rama, SUM(Restante)

Agrupar por Rama

TENER SUMA ( Resto ) 5 000;

Argumentos en una oración TENIENDO obedecer las mismas reglas que en la oración SELECCIONAR donde se usa Agrupar por. Deben tener un valor por grupo de salida.


Siguiente comando Estará prohibido:

SELECCIONAR Rama,SUM(Restante)

GRUPO POR Sucursal

TENIENDO Fecha de Apertura = 27/12/2004 ;

Campo Fecha de apertura no se puede usar en una oración TENIENDO, porque puede tener más de un valor por grupo de salida. Para evitar tal situación, la sugerencia TENIENDO sólo debe hacer referencia a los agregados y campos seleccionados Agrupar por. Disponible la manera correcta haga la solicitud anterior:

SELECCIONAR Rama,SUM(Restante)

DONDEOpenDate = '27/12/2004'

GRUPO POR Sucursal;


Significado de esta solicitud siguiente: encuentre la suma de los saldos de cada sucursal de cuentas abiertas el 27 de diciembre de 2004.

Como se indicó anteriormente, HAVING solo puede aceptar argumentos que tengan un valor por grupo de salida. Prácticamente, las referencias a funciones agregadas son las más comunes, pero también campos seleccionados con usando GRUPO BY también son aceptables. Por ejemplo, queremos ver los saldos totales de las cuentas de las sucursales en San Petersburgo, Pskov y Uryupinsk:

SELECCIONAR Rama, SUM(Restante)

DESDE F,Q

DONDE F. Rama = Q. Rama

GRUPO POR Sucursal

TENIENDO Sucursal EN ('San Petersburgo', 'Pskov', 'Uryupinsk');

100.000; Si el saldo total es superior a $100.000, lo veremos en la relación resultante; de ​​lo contrario, obtendremos una relación vacía. "ancho="640"

Por lo tanto, solo las especificaciones de las columnas especificadas como columnas de agrupación en la cláusula GROUP BY se pueden usar directamente en expresiones aritméticas de predicados incluidas en la cláusula de selección de la cláusula HAVING. Las columnas restantes solo se pueden especificar dentro de las especificaciones de las funciones agregadas COUNT, SUM, AVG, MIN y MAX, que se calculan en en este caso algún valor agregado para todo el grupo de filas. El resultado de ejecutar la cláusula HAVING es una tabla agrupada que contiene solo aquellos grupos de filas para los cuales el resultado del cálculo de la condición de selección en la cláusula HAVING es VERDADERO. En particular, si la cláusula HAVING está presente en una consulta que no contiene GROUP BY, entonces el resultado de su ejecución será mesa vacía, o el resultado de ejecutar secciones anteriores de la expresión de la tabla, tratadas como un grupo sin agrupar columnas. Veamos un ejemplo. Digamos que queremos mostrar la cantidad total de saldos en todas las sucursales, pero solo si es más de $100,000. En este caso, nuestra consulta no contendrá operaciones de agrupación, pero contendrá una sección HAVING y se verá así:

SELECCIONAR SUMA( Resto )

TENER SUMA( Resto ) 100 000;

Si el saldo total es superior a $100.000, lo veremos en la relación resultante; de ​​lo contrario, obtendremos una relación vacía.


Cláusula GRUPO POR (SELECCIONAR declaraciones) le permite agrupar datos (filas) por el valor de una columna o varias columnas o expresiones. El resultado será un conjunto de filas de resumen.

Cada columna de la lista de selección debe aparecer en la cláusula GROUP BY, con la excepción de las constantes y las columnas de operandos de funciones agregadas.

Puede agrupar una tabla por cualquier combinación de sus columnas.

Funciones agregadas se utilizan para obtener un único valor total de un grupo de filas. Todas las funciones agregadas realizan cálculos sobre un único argumento, que puede ser una columna o una expresión. El resultado de cualquier cálculo de función agregada es un valor constante que se muestra en una columna de resultados separada.

Las funciones agregadas se especifican en la lista de columnas de una instrucción SELECT, que también puede contener una cláusula GROUP BY. Si no hay una cláusula GROUP BY en la instrucción SELECT y la lista de columnas seleccionadas contiene al menos una función agregada, entonces no debe contener columnas simples. Por otro lado, la lista de selección de columnas puede contener nombres de columnas que no son argumentos para la función agregada si esas columnas son argumentos para la cláusula GROUP BY.

Si la consulta contiene una cláusula WHERE, las funciones agregadas calculan el valor de los resultados de la selección.

Funciones agregadas MIN y MAX calcule el valor más pequeño y más grande de la columna, respectivamente. Los argumentos pueden ser números, cadenas y fechas. Todos los valores NULL se eliminan antes del cálculo (es decir, no se tienen en cuenta).

Función agregada SUMA Calcula la suma total de los valores de una columna. Los argumentos sólo pueden ser números. El uso del parámetro DISTINCT elimina todos los valores duplicados en una columna antes de aplicar Funciones SUMA. Asimismo, todos los valores NULL se eliminan antes de aplicar esta función agregada.

función agregada AVG Devuelve el promedio de todos los valores de una columna. Los argumentos también pueden ser solo números y todos los valores NULL se eliminan antes de la evaluación.

Función agregada CONTAR tiene dos formas diferentes:

  • COUNT(col_name): cuenta el número de valores en la columna col_name, los valores NULL no se tienen en cuenta
  • COUNT(*): cuenta el número de filas de la tabla, los valores NULL también se tienen en cuenta

Si la consulta usa la palabra clave DISTINCT, todos los valores duplicados en la columna se eliminan antes de usar la función COUNT.

Función COUNT_BIG similar a la función CONTAR. La única diferencia entre ellos es el tipo de resultado que devuelven: la función CONTAR_BIG siempre devuelve valores GRANDES, mientras que la función CONTAR devuelve valores de datos ENTEROS.

EN TENER oferta define una condición que se aplica a un grupo de filas. Tiene el mismo significado para grupos de filas que la cláusula WHERE para el contenido de la tabla correspondiente (WHERE se aplica antes de agrupar, HAVING después).

Para resumir la información contenida en la base de datos, SQL proporciona funciones agregadas. Una función agregada toma una columna completa de datos como argumento y devuelve un valor único que resume esa columna de una manera específica.

Por ejemplo, la función agregada AVG() toma una columna de números como argumento y calcula su promedio.

Para calcular el ingreso per cápita promedio de un residente de Zelenograd, necesita la siguiente consulta:

SELECCIONE ‘INGRESO PROMEDIO PER CÁPITA=’, PROMEDIO(SUMD)

SQL tiene seis funciones agregadas que le permiten obtener varios tipos información resumida (Fig.1):

– SUM() calcula la suma de todos los valores contenidos en una columna;

– AVG() calcula el promedio de los valores contenidos en la columna;

– MIN() encuentra el más pequeño de todos los valores contenidos en la columna;

– MAX() encuentra el mayor entre todos los valores contenidos en la columna;

– COUNT() cuenta el número de valores contenidos en una columna;

– COUNT(*) cuenta el número de filas en la tabla de resultados de la consulta.

El argumento de una función agregada puede ser un nombre de columna simple, como en el ejemplo anterior, o una expresión, como en la siguiente consulta, que especifica el cálculo del impuesto per cápita promedio:

SELECCIONAR PROMEDIO(SUMA*0.13)

Esta consulta crea una columna temporal que contiene los valores (SUMD*0.13) para cada fila de la tabla PERSONA y luego calcula el promedio de la columna temporal.

La cantidad de ingresos de todos los residentes de Zelenograd se puede calcular utilizando la función agregada SUMA:

SELECCIONAR SUMA(SUMD) DE PERSONA

También se puede utilizar una función agregada para calcular totales a partir de una tabla de resultados obtenida uniendo varias tablas de origen. Por ejemplo, puedes calcular el monto total de ingresos que los residentes recibieron de una fuente llamada “Beca”:

SELECCIONAR SUMA(DINERO)

DE GANANCIAS, TENER_D

DONDE PROFIT.ID=HAVE_D.ID

AND PROFIT.SOURCE=’Beca’

Las funciones agregadas MIN() y MAX() le permiten encontrar los valores más pequeños y valor más alto en la mesa. La columna puede contener valores numéricos o de cadena, o valores de fecha u hora.

Por ejemplo, puede definir:

(a) más pequeño ingresos totales, recibido por los residentes, y el impuesto más alto a pagar:

SELECCIONAR MÍN.(SUMA), MÁX.(SUMA*0.13)

b) fechas de nacimiento del residente de mayor y menor edad:

SELECCIONE MIN(RDATE), MAX(RDATE)

c) apellidos, nombres y patronímicos del primer y último residente de la lista, ordenados alfabéticamente:

SELECCIONAR MÍN.(FIO), MÁX.(FIO)

Al utilizar estas funciones agregadas, debe recordar que los datos numéricos se comparan mediante reglas aritméticas, las fechas se comparan secuencialmente (los valores de fechas anteriores se consideran más pequeños que los posteriores) y los intervalos de tiempo se comparan en función de su duración.

Cuando se utilizan las funciones MIN() y MAX() con datos de cadena, el resultado de comparar dos cadenas depende de la tabla de codificación de caracteres utilizada.

La función agregada COUNT() cuenta el número de valores en una columna de cualquier tipo:

(a) ¿cuántos apartamentos hay en el primer microdistrito?

SELECCIONE RECUENTO (ADR) DE PLANO DONDE ADR COMO "%, 1_ _-%"

(b) ¿cuántos residentes tienen fuentes de ingresos?

SELECCIONE RECUENTO (NOM DISTINTO) DE HAVE_D

(c) ¿Cuántas fuentes de ingresos utilizan los residentes?

SELECT COUNT(DISTINCT ID) FROM HAVE_D (La palabra clave DISTINCT especifica que se cuentan los valores no duplicados en la columna).

La función agregada especial COUNT(*) cuenta las filas de la tabla de resultados, no los valores de los datos:

(a) ¿cuántos apartamentos hay en el segundo microdistrito?

SELECCIONE RECUENTO (*) DE PLANO DONDE ADR COMO "%, 2__-%"

(b) ¿Cuántas fuentes de ingresos tiene Ivan Ivanovich Ivanov?

SELECCIONE RECUENTO(*) DE PERSONA, HAVE_D DONDE FIO="Ivanov Ivan Ivanovich" AND PERSON.NOM=HAVE_D.NOM

(c) ¿cuántos residentes viven en un apartamento en una dirección determinada?

SELECCIONE RECUENTO(*) DE PERSONA DONDE ADR="Zelenograd, 1001-45"

Una forma de entender cómo se ejecutan las consultas resumidas con funciones agregadas es pensar que la ejecución de la consulta se divide en dos partes. Primero, determinamos cómo funcionaría la consulta sin funciones agregadas, devolviendo múltiples filas de resultados. Luego, las funciones agregadas se aplican a los resultados de la consulta y devuelven una única fila resultante.

Por ejemplo, considere la siguiente consulta compleja: encuentre el ingreso total promedio per cápita, la suma del ingreso total de los residentes y el rendimiento promedio de la fuente como porcentaje del ingreso total del residente. El operador da la respuesta.

SELECCIONE PROMEDIO(SUMD), SUMA(SUMD), (100*PROMEDIO(DINERO/SUMD)) DE PERSONA, BENEFICIO, HAVE_D DONDE PERSON.NOM=HAVE_D.NOM AND HAVE_D.ID=PROFIT.ID

Sin funciones agregadas, la consulta se vería así:

SELECCIONE SUMD, SUMD, DINERO/SUMD DE PERSONA, BENEFICIO, HAVE_D DONDE PERSON.NOM=HAVE_D.NOM Y HAVE_D.ID=PROFIT.ID

y devolvería una fila de resultados para cada residente y fuente de ingresos específica. Las funciones agregadas utilizan las columnas de la tabla de resultados de la consulta para producir una tabla de una sola fila con los resultados resumidos.

Puede especificar una función agregada en la fila de la columna devuelta en lugar de cualquier nombre de columna. Por ejemplo, puede ser parte de una expresión que suma o resta los valores de dos funciones agregadas:

SELECCIONE MAX(SUMD)-MIN(SUMD) DE PERSONA

Sin embargo, una función agregada no puede ser un argumento para otra función agregada, es decir Las funciones agregadas anidadas están prohibidas.

Además, la lista de columnas devueltas no puede usar funciones agregadas y nombres de columnas regulares al mismo tiempo, ya que esto no tiene sentido, por ejemplo:

SELECCIONE FIO, SUMA (SUMD) DE PERSONA

Aquí, el primer elemento de la lista indica al DBMS que cree una tabla que constará de varias filas y contendrá una fila para cada residente. El segundo elemento de la lista solicita al DBMS que obtenga un único valor de resultado, que es la suma de los valores de la columna SUMD. Estas dos instrucciones se contradicen, lo que genera un error.

Lo anterior no aplica para los casos de procesamiento de subconsultas y consultas con agrupación.

Usar funciones agregadas

SQL define muchas funciones integradas de varias categorías, entre las cuales un lugar especial lo ocupan las funciones agregadas, que operan con los valores de columnas de muchas filas y devuelven un solo valor. Los argumentos para agregar funciones pueden ser tanto columnas de tabla como resultados de expresiones sobre ellas. Las propias funciones agregadas se pueden incluir en otras funciones. expresiones aritméticas. La siguiente tabla muestra las funciones agregadas unarias estándar más utilizadas.


El formato general de una función agregada unaria es el siguiente:

nombre_función([TODO | DISTINTO] expresión)

donde DISTINCT indica que la función solo debe considerar diferentes significados argumento y TODOS: todos los valores, incluidos los duplicados (esta opción se utiliza de forma predeterminada). Por ejemplo, la función AVG con la palabra clave DISTINCT para filas de columnas con valores 1, 1, 1 y 3 devolverá 2, y si la palabra clave ALL está presente, devolverá 1,5.

Las funciones agregadas se utilizan en cláusulas SELECT y HAVING. Aquí veremos su uso en la cláusula SELECT. En este caso, la expresión del argumento de la función se aplica a todas las filas de la tabla de entrada de la cláusula SELECT. Además, no puede usar funciones agregadas y columnas de tabla (o expresiones con ellas) en una cláusula SELECT a menos que tenga una cláusula GROUP BY, que veremos en la siguiente sección.

La función CONTAR tiene dos formatos. En el primer caso, se devuelve el número de filas de la tabla de entrada; en el segundo caso, se devuelve el número de valores de argumentos en la tabla de entrada:

  • CONTAR(*)
  • CONTAR(expresión)

La forma más sencilla de utilizar esta función es contar el número de filas de una tabla (todas o aquellas que satisfacen una condición específica). Para ello se utiliza la primera opción de sintaxis.

Consulta: Número de tipos de productos de los que hay información disponible en la base de datos.

SELECCIONE CONTAR(*) COMO "Número de tipos de productos"

DE Producto

En la segunda versión de la sintaxis de la función CONTAR, el nombre se puede utilizar como argumento. columna separada. En este caso, se cuenta el número de todos los valores en esta columna de la tabla de entrada, o solo los que no se repiten (usando la palabra clave DISTINCT).

Consulta: Número de nombres distintos contenidos en la tabla Cliente.

SELECCIONAR RECUENTO (NOMBRE DISTINTO)

DEL cliente

El uso de otras funciones agregadas unarias es similar a COUNT, excepto que para MIN y Uso MÁXIMO palabras clave DISTINTO y TODOS no tienen sentido. Con las funciones COUNT, MAX y MIN, además de los campos numéricos, también se pueden utilizar campos de caracteres. Si el argumento de la función agregada no contiene valores, la función CONTAR devuelve 0 y todos los demás devuelven valor NULO.

SELECCIONAR MÁXIMO (Fecha de pedido)

DE

DONDE fecha de pedido"1.09.2010"

tarea para trabajo independiente: Indícalo en el idioma consultas SQL para muestrear los siguientes datos:

  • Costo total de todos los pedidos;
  • El número de ciudades diferentes contenidas en la tabla Cliente.



Arriba