Contactos

Cantidad total de SQL. Las funciones agregadas de SQL - SUM, MIN, MAX, AVG, cuentan. Parámetros o argumentos

Cálculos

Funciones finales

En las expresiones de solicitud SQL, a menudo es necesario pre-procesar datos. Para este propósito, se utilizan funciones y expresiones especiales.

Muy a menudo, debe saber cuántos registros corresponden a una solicitud en particular,¿Cuál es la suma de los valores de alguna columna numérica, su valor máximo, mínimo y medio? Esto sirve a las llamadas funciones finales (estadísticas, agregadas). Las funciones finales procesan los conjuntos de registros especificados, por ejemplo, la expresión donde. Si se incluyen en la lista de columnas siguiendo la instrucción SELECT, la tabla de resultados contendrá no solo las columnas de la tabla de la base de datos, sino también los valores calculados utilizando estas funciones. Lee maslista de funciones finales.

  • Cuenta (parámetro ) - Devuelve el número de registros especificados en el parámetro. Si desea obtener el número de todos los registros, debe especificar el símbolo de asterisco (*). Si especifica el nombre de la columna como un parámetro, la función devolverá el número de entradas en las que esta columna tiene valores distintos a NULL. Para saber cuántos valores diferentes contiene una columna, debe especificar la palabra clave distintiva antes de ella. Por ejemplo:

Seleccione CUENTA (*) de los clientes;

Seleccione CUENTA (SALE DESDARD) de los clientes;

Seleccione el recuento (distintivo Sum_Name) de los clientes;

El intento de realizar la siguiente consulta hará un mensaje de error:

Seleccionar región, contar (*) de los clientes;

  • Suma (parámetro ) - Devuelve la cantidad de los valores de la columna especificada en el parámetro. El parámetro puede ser tanto una expresión que contiene el nombre de la columna. Por ejemplo:

Seleccione la suma. (Valor_Name) de los clientes;

Esta expresión de SQL devuelve una tabla que consiste en una sola columna y un registro y que contiene la suma de todos los valores ciertos del monto de la columna de la tabla del cliente.

Supongamos que en la tabla de origen, el valor del monto de la columna se expresa en rublos, y debemos calcular la cantidad total en dólares. Si el tipo de cambio actual es, por ejemplo, 27.8, entonces es posible obtener el resultado deseado usando una expresión:

Seleccione la suma. (Sum_Name * 27.8) de los clientes;

  • AVG (parámetro ) - Devuelve el promedio aritmético de todos los valores especificados en el parámetro de la columna. El parámetro puede ser una expresión que contiene el nombre de la columna. Por ejemplo:

Seleccione AVG (Sum_Name) de los clientes;

Seleccione AVG (Sum_Name * 27.8) de los clientes

Donde region<> "North_3apad";

  • Mach (parámetro ) - Devuelve el valor máximo en la columna especificada en el parámetro. El parámetro también puede ser una expresión que contiene el nombre de la columna. Por ejemplo:

Seleccione Max (Sum__nce) de los clientes;

Seleccione Mach (Sum_Name * 27.8) de los clientes

Dónde. Región<> "North_3apad";

  • Min (parámetro ) - Devuelve el valor mínimo en la columna especificada en el parámetro. El parámetro puede ser una expresión que contiene el nombre de la columna. Por ejemplo:

Seleccione MIN (orden de venta) de los clientes;

Seleccione MIN (SUM__NCE * 27. 8) De los clientes

Dónde. Región<> "North_3apad";

En la práctica, a menudo es necesario obtener una tabla final que contenga los valores totales, promediados, máximos y mínimos de las columnas numéricas. Para hacer esto, use el grupo por grupo (grupo por) y las funciones finales.

Seleccione región, suma (Sumader) de los clientes

Grupo por región;

La tabla de resultados para esta solicitud contiene los nombres de las regiones y el monto total (general) de los pedidos de todos los clientes de las regiones respectivas (Fig. 5).

Ahora considere una solicitud para recibir todos los datos finales por región:

Seleccione región, suma (Opción SUP), AVG (Sum_name), max (sum_name),Min (sum_name)

De clientes

Grupo por región;

Las tablas de origen y resultados se muestran en la FIG. 8. En el ejemplo, solo la región noroeste se presenta en la tabla de origen con más de un registro. Por lo tanto, en la tabla de resultados para ello, varios resultados reciben diferentes valores.

Higo. 8. Tabla final Cantidad de pedidos por región

Cuando se utiliza las funciones finales en la lista de columnas en la instrucción SELECT, los encabezados correspondientes a ellos en la tabla de resultados tienen la aparición de EXPR1001, EXPR1002, etc. (o algo similar, dependiendo de la implementación de SQL). Sin embargo, los titulares para los valores de las funciones finales y otras columnas puede establecer a su discreción. Para hacer esto, suficientemente después de la columna en la instrucción SELECT, especifique la expresión del formulario:

Como title_stolbets

La palabra clave (AS) significa que en la tabla de resultados, la columna correspondiente debe tener un título especificado después. El encabezado designado también se le llama un seudónimo. En el siguiente ejemplo (Fig. 9), los seudónimos se establecen para todas las columnas calculadas:

SELECCIONE REGIÓN,

SUMA. (Sum_name) como [cantidad de orden total],

AVG. (La suma del pedido) como [cantidad de orden promedio],

Max (sum_name) como máximo

Min. (Sum_Name) como mínimo,

De clientes

Grupo por región;

Higo. 9. La tabla final de pedidos por regiones utilizando alias de columna.

Los seudónimos, que consisten en varias palabras separadas por espacios, son corchetes.

Las funciones finales se pueden usar en Seleccionar y tener expresiones, pero no se pueden usar en la expresión donde. Los operadores que tienen es similar al operador, pero en contraste con el lugar donde selecciona registros en grupos.

Supongamos que se requiere para determinar en qué regiones más de un cliente. Para este fin, puedes usar esta solicitud:

Seleccione región, cuenta (*)

De clientes

Grupo por región que tiene cuenta (*)\u003e 1;

Funciones para el procesamiento de valores.

Al trabajar con datos, a menudo tienen que procesarlos (convertir al formulario deseado): seleccione alguna subcadena en la línea, retire las brechas iniciales y finales, redondee el número, calcule la raíz cuadrada, determine la hora actual, etc. Los siguientes tres tipos de funciones están disponibles en SQL:

  • funciones de cadena;
  • funciones numéricas;
  • funciones de fecha-hora.

Funciones de cadena

Las funciones de cadena se toman como el parámetro de cadena y devuelve después de procesar la cadena o la nula.

  • Subcadena (Cadena de inicio) - Devuelve una subcadena obtenida de la cadena que se especifica como un parámetrolínea . Subcadena Comienza con el carácter, el número de secuencia de los cuales se especifica en el parámetro de inicio y tiene la longitud especificada en el parámetro de longitud. La numeración de los símbolos de cadena se realiza de izquierda a derecha, comenzando con 1. Soportes cuadrados aquí indican solo el hecho de que la expresión celebrada en ellos no es obligatoria. Si la expresiónPor longitud no se usa, entonces la subcadena se devuelve decomienzo y hasta el final de la línea fuente. Valores paramétricoscasa y longitud Debe ser seleccionado de modo que la subcadena deseada esté realmente dentro de la línea de origen. De lo contrario, la función de subcadenación volverá a ser NULL.

Por ejemplo:

Substring ("Querida Masha!" De 9 por 4) - Devuelve "Masha";

Substring ("Querida Masha!" De 9): "¡Masha!";

Substring ("Querida Masha!" De 15) es nulo.

Puede usar esta función en la expresión de SQL, por ejemplo, de la siguiente manera:

Seleccione * de los clientes

Donde subcadena (región de 1 para 5) \u003d "norte";

  • Superior (cadena ) - Transfiere todos los caracteres especificados en el parámetro de cadena a la caja superior.
  • Más bajo ) - Transfiere todos los caracteres especificados en el parámetro de cadena al registro inferior.
  • Recorte (liderazo | Transporte | Ambos ["símbolo"] de la fila ) - Elimina el líder (líder), final (final) o aquellos y otros (ambos) caracteres de una cadena. De forma predeterminada, un símbolo remoto es un espacio (""), por lo que no se puede indicar. La mayoría de las veces, esta característica se usa precisamente para eliminar espacios.

Por ejemplo:

Trim (LINGER "" de "Ciudad de San Petersburgo") gira "Ciudad de San Petersburgo";

Recortar (Traling "" de "Ciudad de San Petersburgo)) Devuelve la ciudad de San Petersburgo;

Recortar (ambos "" de "Ciudad de San Petersburgo)) - Devuelve la ciudad de San Petersburgo;

Recorte (ambos de "Ciudad de San Petersburgo"): devuelve la ciudad de San Petersburgo;

Recorte (ambos "Sr." de "Ciudad de San Petersburgo"): devuelve el "OOD de San Petersburgo".

Entre estas funciones se encuentran los más utilizados: subcadena () y recorte ().

Funciones numéricas

Las funciones numéricas, ya que un parámetro puede recibir datos no solo de tipo numérico, sino que siempre devuelva el número o NULL (valor indefinido).

  • POSICIÓN ( targetStrock en cadena) - Busca la entrada de la línea de destino a la cadena especificada. En el caso de una búsqueda exitosa, devuelve el número de posición de su primer carácter, de lo contrario, 0. Si la línea de destino tiene una longitud cero (por ejemplo, una cadena "), entonces la función devuelve 1. Si al menos uno de los parámetros es nulo, null se devuelve. La numeración de los símbolos de cadena se realiza de izquierda a derecha, a partir de 1.

Por ejemplo:

Posición ("E" en "Hola a todos") - Devuelve 5;

Posición ("todos" en "Hola a todos") - Devuelve 8;

Posición ("Hola a todos") - Devuelve 1;

Posición ("¡Hola!" En "Hola a todos") - devuelve 0.

En los clientes de la tabla (ver Fig. 1) La columna de direcciones contiene, excepto el nombre de la ciudad, el código postal, el nombre de la calle y otros datos. Es posible que deba elegir registros de clientes que viven en una ciudad específica. Por lo tanto, si necesita elegir registros relacionados con los clientes que viven en San Petersburgo, puede usar la siguiente expresión de solicitud de SQL:

Seleccione * de los clientes

Donde la posición ("St. Petersburg" en la dirección)\u003e 0;

Tenga en cuenta que esta simple solicitud para seleccionar los datos se puede formular de otra manera:

Seleccione * de los clientes

Donde la dirección como "% petersburg%";

  • Extracto (parámetro ) - Extrae un elemento del tipo de fecha de fecha o desde el intervalo. Por ejemplo:

Extracto (mes a partir de la fecha "2005-10-25") -devuelve 10.

  • Caracteres_length (cadena ) - Devuelve el número de caracteres en la cadena.

Por ejemplo:

Caracteres_length ("Hola a todos") - Devuelve 11.

  • Octet_length (cadena ) - Devuelve el número de octetos (bytes) en la cadena. Cada símbolo de latín o cirílico es un byte, y el símbolo del alfabeto chino es dos bytes.
  • Cardinality (parámetro ) - Toma una colección de elementos como un parámetro y devuelve el número de elementos en la recolección (número cardinal). La colección puede ser, por ejemplo, con una matriz o multiset que contiene elementos de varios tipos.
  • Abs (número ) - Devuelve el valor absoluto del número. Por ejemplo:

ABS (-123) es 123;

ABS (2 - 5) - Devuelve 3.

  • MO D (Number1, Number2 ) - Devuelve el saldo de la división de enteros del primer número al segundo. Por ejemplo:

Mod (5, s) - devuelve 2;

Mod (2, h) - devuelve 0.

  • Ln (número ) - Devuelve el logaritmo natural del número.
  • EXR (número) - devuelve (La base del logaritmo natural en el número de extensión).
  • Poder (Número 1, Number2 ) - Devuelve el número1número 2 (Number1 al número de grado2).
  • Sqrt (número ) - Devuelve una raíz cuadrada de entre.
  • Numero de piso ) - Devuelve el número entero más grande que no excede el parámetro especificado (redondeo a una dirección más pequeña). Por ejemplo:

Piso (5.123) - Devuelve 5.0.

  • Ceil (número) o techo (número ) - Devuelve el entero más pequeño que no es menor que el parámetro de redondeo en una dirección grande). Por ejemplo:

CEIL (5.123) - Devuelve 6. 0.

  • Ancho_bucket. (Number1, Number2, Numeroverose, Number4) devuelve un entero en el rango entre 0 y Número4 + 1. Parámetros Number2 y numerosos Especifique un segmento numérico, dividido en intervalos de equilibrio, el número de los cuales se establece el número 4. La función determina el número de intervalo en el que el valor número1. Si el número 1 está fuera del rango especificado, la función devuelve 0 o número 4 + 1. Por ejemplo:

Ancho_bucket (3.14, 0, 9, 5) - Devuelve 2.

Funciones de fecha-hora

El idioma SQL tiene tres funciones que devuelven la fecha y la hora actuales.

  • Fecha actual. - Devuelve la fecha actual (fecha de tipo).

Por ejemplo: 2005-06-18.

  • Actual_time (número ) - Devuelve la hora actual (tipo de tiempo). Un parámetro entero indica la precisión de la presentación de segundos. Por ejemplo, con un valor de 2 segundos se presentará con una precisión de centésimas (dos dígitos en la parte fraccionaria):

12:39:45.27.

  • Current_timestamp (número ) - Devuelve la fecha y la hora (tipo marca de tiempo). Por ejemplo, 2005-06-18 12: 39: 45.27. Un parámetro entero indica la precisión de la presentación de segundos.

Tenga en cuenta que la fecha y la hora devueltas por estas funciones no tienen un tipo de símbolo. Si desea enviarlos en forma de cadenas de caracteres, para esto, debe usar la función de conversión de fundición ().

Las funciones de fecha-hora generalmente se aplican en las solicitudes de inserción, actualizar y eliminar datos. Por ejemplo, al escribir una información de ventas en un lugar especialmente previsto para esto, la columna se realiza mediante la fecha y la hora actuales. Después de resumir el mes o el trimestre, se pueden eliminar los datos de ventas para el período de informe.

Expresiones calculadas

Las expresiones calculadas se construyen a partir de constantes (numéricas, cadenas, lógicas), funciones, nombres de campo y datos de otros tipos conectando su aritmética, cadena, lógica y otros operadores. A su vez, las expresiones se pueden combinar a través de los operadores en expresiones más complejas (compuestas). Los soportes redondos se utilizan para gestionar el procedimiento para calcular las expresiones.

Operadores lógicos Y, o y no y funciones. Fueron revisados \u200b\u200banteriormente.

Operadores aritméticos:

  • + - adición;
  • - - resta;
  • * - Multiplicación;
  • / - División.

Operador de cadena Solo uno es un operador de concatenación o encolado de cuerdas (| |). En algunas implementaciones SQL (por ejemplo, Microsoft Access), en lugar de (|), se usa un símbolo (+). El operador de la concatentación atribuye una segunda cadena hasta el final del primer ejemplo, expresión:

"Sasha" | | "Ama" | | "Masha"

volverá como resultado de la cadena "Sashalubit Masha".

Al hacer expresiones, es necesario asegurarse de que los operadores de operandos tengan tipos permisibles. Por ejemplo, la expresión: 123 + "sasha" es inaceptable porque el operador de la adición aritmética se aplica a la cadena operando.

Las expresiones calculadas pueden ser después de la declaración de selección, así como en los términos de las condiciones de dónde y los operadores de HAVINg.

Considere varios ejemplos.

Deje que la tabla de ventas contenga las columnas de tipo de tipo, la cantidad y el precio, y necesitamos conocer los ingresos para cada tipo de producto. Para esto, es suficiente en la lista de columnas después de que el operador seleccione encienda la cantidad de expresión * Precio:

Seleccione Type_Dashovar, Cantidad, Precio, Cantidad * PrecioComo

Total de la venta;

Utiliza la palabra clave (como) para configurar un seudónimo de columna con datos calculados.

En la Fig. 10 muestra la tabla fuente de venta y la tabla de resultados de la consulta.

Higo. 10. Solicitud de resultado del cálculo de los ingresos para cada tipo de mercancías.

Si desea conocer los ingresos generales de la venta de todos los bienes, es suficiente para aplicar la siguiente consulta:

Seleccione la suma. (Cantidad * Precio) de la venta;

La siguiente consulta contiene expresiones calculadas y en la lista de columnas, y en la condición del operador donde se encuentran. Elige de la tabla de venta aquellos bienes, los ingresos de la venta de los cuales más de 1000:

Seleccione Type_ToVar, Cantidad * Precio como total

De la venta

Donde número * precio\u003e 1000;

Supongamos que necesita obtener una tabla en la que dos columnas:

Bienes que contienen el tipo de bienes y el precio;

Total que contiene ingresos.

Debido a que se supone que en la tabla de origen de la columna de venta Type_lovar es simbólica (char), y la columna de precios es un numérico, luego cuando se combina (pegamento) de datos de estas columnas, es necesario traer un tipo numérico a El símbolo con la función de fundición (). La solicitud que realiza esta tarea se ve así (Fig. 11):

Seleccione Type_Stovar | | "(Precio:" | | Reparto (precio como char (5)) | | ")" Como producto, cantidad * Precio como total

De la venta;

Higo. 11. Solicitar resultados con un sindicato de datos de la base de datos en una columna

Nota. En Microsoft Access, una solicitud similar tendrá el siguiente formulario:

Seleccione Type_Stovar + "(Precio:" + CStr. (Precio) + ")" como producto,

Cantidad * Precio como total

De la venta;

Expresiones convencionales con el operador de casos.

En los idiomas de programación habituales, hay operadores de transición condicionales que le permiten controlar el proceso de computación dependiendo de si tiene o no una cierta condición. En lenguaje SQL, dicho operador es un caso (caso, circunstancia, copia). En SQL: 2003, este operador devuelve un valor y, por lo tanto, puede usarse en expresiones. Tiene dos formas principales que consideraremos en esta sección.

Operador de casos con valores.

El operador de casos con valores tiene la siguiente sintaxis:

Caso chequeado_new

Cuando el valor1 luego resulte 1

Cuando el valor es 0, entonces resuleTat2

. . .

Cuando Menue N, entonces resulta n

Más resultados

En el caso cuando comprobado Igualmente valor1 , El operador de casos devuelve el valorresultado1 , Especificado después de la palabra clave entonces. De lo contrario, la verifiable se compara consignificado2 , y si son iguales, entonces se devuelve el valor del resultado2. De lo contrario, el valor verificado se compara con el siguiente valor indicado después de la palabra clave (cuando), etc. Si el valor verificable no es igual a uno de estos valores, se devuelve el valorresultado X. indicado después de la palabra clave otra (de lo contrario).

Otra palabra clave no es obligatoria. Si falta y ninguno de los valores que están sujetos a comparación, no es igual al valor valorado, el operador de casos devuelve NULL.

Supongamos, basado en la tabla del cliente (ver Fig. 1), se requiere obtener una tabla en la que los nombres de las regiones se reemplacen por sus números de código. Si no hay demasiadas regiones diferentes en la tabla de origen, entonces es conveniente usar la solicitud con el operador de casos para resolver esta tarea:

Seleccione Nombre, Dirección,

Región de caso

Cuando "Moscú" entonces "77"

Cuando "Tver Region" entonces "69"

. . .

Otra región

Como código de la región

De los clientes;

Operador de casos con términos de búsqueda.

La segunda forma del operador de casos asume su uso cuando se busca en la tabla de esos registros que satisfacen una cierta condición:

Caso

Cuando la condición 1 entonces resulte1

Cuando Wai2 entonces resulta2

. . .

Cuando la condición n luego resultado n

Más resultados

El operador de casos comprueba si la condición1 es verdadera para la primera entrada en el conjunto definido por el operador donde está en toda la tabla, o en toda la tabla, si no hay dónde. Si es así, el caso devuelve el valor del resultado1. De lo contrario, se verifica una condición2 para este registro. Si es cierto, se devuelve el valor del resultado2, etc. Si no se ejecutan ninguna de las condiciones, se devuelve el valor.X. mostrado después de la clave de la palabra otra cosa.

Otra palabra clave no es obligatoria. Si falta y no se realiza ninguna de las condiciones, el operador de casos gira nulo. Después de ejecutar el caso que contenga el operador, se ejecuta para el primer registro, va al siguiente registro. Así que continúa hasta que se procese todo el conjunto de registros.

Supongamos, en la tabla del libro (nombre, precio), la columna es nula si el libro correspondiente no está disponible. La siguiente solicitud devuelve una tabla en la que aparece el texto "No disponible" en lugar de NULL:

Seleccione Nombre

Caso

Cuando el precio es nulo entonces "Fuera de stock"

Else elicado (precio como char (8))

Como precio

De libros;

Todos los valores de la misma columna deben tener los mismos tipos. Por lo tanto, esta consulta utiliza la función de conversión de tipo de fundición para llevar el número de valores de columna. Precio al tipo simbólico.

Tenga en cuenta que en lugar de la primera forma, el operador de la caja siempre se puede usar en segundo:

Caso

Cuando versement_venue \u003d Value1, entonces resultados1

Cuando está marcado.

. . .

Cuando versement_vense \u003d valorN luego pseltytn.

Else resoletath

Funciones nullif y coalescen.

En algunos casos, especialmente en las solicitudes de actualización de datos (Operador de actualización), es conveniente usar funciones más compactas NULLIF () (NULL, IF) y Coalesce () (NULL, IF) y Coalesce ().

Función nullif ( significado1, valor2) Devuelve NULL si el valor del primer parámetro corresponde al valor del segundo parámetro, en caso de inconsistencias, el valor del primer parámetro se devuelve sin cambios. Es decir, si el valor de igualdad1 \u003d valor2 se realiza, la función devuelve nulo, de lo contrario el valor valor11.

Esta función es equivalente al operador de la caja en las siguientes dos formas:

  • Caso Valor1

Cuando recomiende2 entonces nulo

Otra cosa valor1

  • Caso

Cuando valor1 \u003d valor2 entonces nulo

Otra cosa valor1

Característica de Coalesce ( valor1, Value2, ...,n valor n) acepta una lista de valores que pueden ser específicos e inciertos (nulos). La función devuelve un valor específico de la lista o nulo si no se definen todos los valores.

Esta característica es equivalente al siguiente operador de casos:

Caso

Cuando el valor 1 no es nulo, entonces valor 1

Cuando el valor 2 no es nulo, entonces valor 2

. . .

Cuando n no es nulo, entonces value n

Otra cosa nula.

Supongamos que en la tabla de libros (nombre, precio), la columna de precios es nulo, si el libro correspondiente no está disponible. La siguiente solicitud devuelve una tabla en la que en su lugarNULO Se muestra el texto "No en stock":

Seleccione Nombre, Coalesce (MAST (precio como Char (8)),

"No disponible") como precio

De libros;

SQL - Lección 11. Funciones totales, columnas calculadas y vistas

Las funciones finales también se denominan estadísticas, agregadas o sumas. Estas funciones manejan un conjunto de filas para contar y devolver un valor. Solo hay cinco funciones:
  • AVG () La función devuelve el valor de la columna promedio.

  • Cuenta () La función devuelve el número de filas en la columna.

  • Max () La función devuelve el mayor valor en la columna.

  • MIN () La función devuelve el valor más pequeño en la columna.

  • Suma () La función devuelve la cantidad de valores de columna.

Con uno de ellos, cuenta () - ya nos conocimos en la lección 8. . Ahora vamos a familiarizarnos con el resto. Supongamos que queríamos aprender el precio mínimo, máximo y el precio promedio de los libros en nuestra tienda. Luego, desde la tabla de precios (precios) debe tomar el valor mínimo, máximo y medio de la columna. Solicitud simple:

Seleccione MIN (Precio), MAX (Precio), AVG (Precio) de Precios;

Ahora, queremos saber cuánto nos llevó al proveedor de la "Casa impresa" (id \u003d 2). Hacer que tal petición no sea tan fácil. Pensemos en cómo hacerlo:

1. Primero, debe seleccionar los identificadores (ID_INCOMING) de aquellos suministros desde la tabla de entrega (ID_INCOMING) (ID \u003d 2) de los suministros (ID \u003d 2):

2. Ahora, desde la tabla de registro de suministros (Magazine_Insoming), debe elegir productos (ID_PRODUCT) y Cantidad (Cantidad), que se encontraron en los puntos de suministro en el párrafo 1. Es decir, la solicitud del párrafo 1 se incrustó:

3. Ahora debemos agregar precios a la tabla resultante para los productos encontrados que se almacenan en la tabla de precios (precios). Es decir, deberemos combinar las tablas de suministros (Magazine_Insoming) y los precios (precios) en la columna ID_PRODUCT:

4. La tabla resultante claramente carece claramente la cantidad de la columna, que es columna calculada. La capacidad de crear tales columnas se proporciona en MySQL. Para hacer esto, solo necesita especificar el nombre de la columna calculada en la consulta y lo que debe calcular. En nuestro ejemplo, esta columna se llamará Summa, y \u200b\u200bla calculará, será un producto de las columnas y el precio. El nombre de la nueva columna está separada por la palabra como:

SELECT MAGELINE_INCOMING.ID_PRODUCT, MAGASINE_INCOMING.CANTY, Precios.Precio, Magazine_Inscoming.Quantity * Precios. Precio como Summa de la revista_indicting, precios donde la revista_inscoming.id_product \u003d precios.id_product y id_incoming \u003d (seleccione ID_INIFICIO DESDE ID_VENDOR \u003d 2);

5. Excelente, solo tenemos que resumir la columna Summa y finalmente descubriremos qué cantidad trajimos el proveedor de mercancías "Casa de impresión". Sintaxis para usar la función SUM ():

Seleccione suma (nombre de champace) de Name_Table;

Sabemos el nombre de la columna - Summa, pero no tenemos el nombre de la tabla, ya que es el resultado de la consulta. ¿Qué hacer? Para tales casos en MySQL hay puntos de vista. La vista es una solicitud de selección que se le asigna un nombre único y que se puede guardar en la base de datos para su uso posterior.

La sintaxis de la creación de representación es la siguiente:

Crear Ver el nombre representativo como consulta;

Guardemos nuestra solicitud, ya que la vista llamada Report_Vendor:

Crear view report_vendor como seleccione Magazine_Inscoming.id_product, Magazine_Inscoming.Quantity, Precios.Precio, Magazine_Inscoming.Cantity * Precios.Precio como Summa de la revista_insoming, precios donde la revista_incoming.id_product \u003d precios.id_product y id_incoming \u003d (seleccione ID_INCOMINIO DE INCOMING donde ID_VENDOR \u003d 2 )

6. Ahora puede usar la función SUM total ():

Seleccione suma (summa) de report_vendor;

Así que logramos el resultado, la verdad para esto tuvimos que usar solicitudes, asociaciones, columnas y presentaciones calculadas. Sí, a veces para obtener el resultado, es necesario pensar sin él en ninguna parte. Pero tocamos dos temas muy importantes: columnas y presentaciones calculadas. Hablemos de ellos con más detalle.

Campos calculados (columnas)

En el ejemplo, hoy miramos el campo calculado matemático. Aquí me gustaría agregar que es posible utilizar no solo el funcionamiento de la multiplicación (*), sino también la resta (-), y la adición (+), y la división (/). La sintaxis es la siguiente:

Select_name_stolbet_1, _stolbet_name_2, _stolbet_name_1 * _name_22 as_name_stolbet_stolbet_name_table;

El segundo matiz es la palabra clave, lo usamos para establecer el nombre de la columna calculada. De hecho, con la ayuda de esta palabra clave, se definen los seudónimos para cualquier columna. ¿Por qué lo necesitas? Para reducir y leer el código. Por ejemplo, nuestra representación podría verse así:

Cree view report_vendor como seleccione a.id_product, a.quantity, b.price, a.quantity * b.price como summa de la revista_incomando como a, precios como B donde B donde b.id_product \u003d b.id_product y id_inscoming \u003d (seleccione ID_INCOMING DE INCOMING Donde id_vendor \u003d 2);

De acuerdo en que es mucho más corto y más claro.

Representación

Ya se consideró la sintaxis de la creación de representaciones. Después de crear vistas, se pueden usar de la misma manera que las tablas. Es decir, realizar solicitudes a ellos, filtrar y ordenar los datos, combinar algunas vistas con otras. Por un lado, esta es una forma muy conveniente de almacenar consultas complejas de componentes (como en nuestro ejemplo).

Pero debe recordarse que las vistas no son una tabla, es decir, no almacenan datos, sino que solo los extraen de otras mesas. Desde aquí, en primer lugar, al cambiar los datos en las tablas, los resultados de la presentación también cambiarán. Y en segundo lugar, al solicitar una vista, se encuentran los datos necesarios, es decir, el rendimiento de los DBMS disminuye. Por lo tanto, no es necesario abusar de ellos.

La función de suma en el idioma SQL, a pesar de su simplicidad, se usa con bastante frecuencia cuando se trabaja con la base de datos. Con él, es conveniente obtener algunos resultados intermedios o finales, sin recurrir a la ayuda de herramientas subsidiarias de DBMS.

Función de sintaxis

En la mayoría de los idiomas SQL, la sintaxis de suma es la misma, solo el nombre del campo o un efecto aritmético de varios de ellos se utilizan como un argumento, que requiere suma.

En casos excepcionales, es posible transmitir un valor específico en forma de un número o variable, sin embargo, tales "esquemas" prácticamente no se usan, ya que no tienen un gran valor. A continuación se muestra la sintaxis de la función SQL:

suma (a) - aquí como un parámetro A usó algún valor numérico o expresión

Vale la pena señalar que delante del parámetro puede establecer palabras clave, por ejemplo, distintas o todas, lo que solo tomará únicas valores, respectivamente.

Ejemplo de uso de suma en SQL

Para la comprensión final del principio de funcionamiento de la función, vale la pena considerar varios ejemplos. SQL Suma se puede utilizar tanto como resultado devuelto como el papel de un valor intermedio, por ejemplo, para verificar la condición.

Para el primer caso, considere la opción cuando desea devolver el monto de ventas para cada producto, dado que el número de compras realizadas puede ser en plural. Para obtener el resultado, será suficiente para realizar la siguiente consulta:

Seleccione el producto, la suma (total) de las mercancías del groupby de la venta;

La respuesta a este comando será una lista única de productos con la cantidad de compra final para cada uno de ellos.

Para el segundo ejemplo, es necesario obtener una lista de productos, la cantidad de ventas mediante la cual excedió un cierto valor, por ejemplo, 100. Es posible obtener el resultado de esta tarea de varias maneras, la más óptima de la cual es la ejecución de una solicitud:

Seleccione Bienes de (Seleccionar producto, suma (total) como cantidad de venta) donde la cantidad\u003e 100.

En este tutorial aprenderás a usar MySQL. función de suma Con sintaxis y ejemplos.

Descripción

Característica MySQL SUMA. Devuelve el valor total de la expresión.

Sintaxis

Funciones de suma de sintaxis de MySQL:

O MySQL Sumax Suma funcione cuando agrupa resultados para una o más columnas:

Parámetros o argumentos

expression1, Expression2, ... Expression_n: expresiones que no están encapsuladas en la función de suma y deben incluirse en el grupo al finalizar el operador de SQL.

agregate_expression es una columna o expresión que se resumirá.

tablas - Tablas de las que desea recibir registros. Debe haber al menos una tabla especificada en la cláusula desde.

Donde las condiciones - opcionales. Estas son las condiciones que deben completarse para las entradas seleccionadas.

Solicitud

La función de suma se puede utilizar en las siguientes versiones de MySQL:

  • MySQL 5.7, MySQL 5.6, MySQL 5.5, MySQL 5.1, MySQL 5.0, MySQL 4.1, MYSQL 4.0, MYSQL 3.23

Un ejemplo con una expresión

Considere los ejemplos de las funciones de MYSQL de la suma para comprender cómo usar la función SUM en MySQL.

Por ejemplo, debe averiguar qué salario general acumulativo de todos los empleados cuyo salario supera los $ 20,000 por año.

En este ejemplo, la función de suma, la expresión de suma (salario) se le asignó el seudónimo "salario total". Como resultado, al devolver un conjunto de resultados, el salario total se mostrará como el nombre del campo.

Ejemplo con el uso de distintos.

Puede utilizar la oferta distinta en la función de suma. Por ejemplo, la declaración SQL a continuación devuelve el salario total combinado de los salarios únicos, donde el salario es superior a $ 20,000 por año.

Si dos salarios fueron 10,000 dólares al año, solo uno de estos valores se utilizaría en la función de suma.

Ejemplo utilizando Fórmula

La expresión contenida en la función de suma no tiene que ser un campo. También puedes usar la fórmula. Por ejemplo, puede calcular la Comisión General.

Mysql

Seleccione suma (ventas * 0.05) como "Comisión Total" de los pedidos;

Suma Suma (Ventas * 0.05) como "Comisión Total"

De las órdenes;

Ejemplo utilizando grupo por

En algunos casos, deberá utilizar el grupo por suministro con función de suma.

Por ejemplo, puede utilizar la función de suma para devolver el departamento y la cantidad total de ventas (ventas en el departamento correspondiente).



¿Te gustó el artículo? Compártelo