Aunque la mayoría de las funciones matemáticas en SQL hacen cálculos un registro a la vez, las funciones de agregado devuelve resultados para todos los registros de un conjunto de datos o un grupo de registros de un conjunto. Por ejemplo, el "AVG ()" función toma el promedio del campo especificado para todos los registros devueltos por una instrucción "SELECT " , según el siguiente código SQL ilustra :
SELECT AVG ( total_sales ) FROM Clientes WHERE estado = ' NY ' ;
Esta declaración muestra el promedio de ventas totales para todos los clientes en el estado de Nueva York. Se muestra un solo número . También puede romper promedios por estado, como en esta sentencia: SELECT estado
, AVG ( total_sales ) FROM clientes GROUP BY Estado;
Esto muestra una línea por cada Estado , dando el promedio de ventas cifra para todos los clientes en el estado.
Matemáticas Norma
las funciones matemáticas estándar de mySQL incluyen la suma, resta , multiplicación y división , trigonometría, exponenciales y varios otros. Para los campos de una tabla, MySQL realiza los cálculos en cada registro . Por ejemplo , para mostrar las ventas totales para el registro de la orden , usted puede multiplicar el precio unitario por la cantidad pedida ya que esto demuestra la sentencia SQL : SELECT
unit_price , qty_ordered , unit_price * Cantidad Pedido de órdenes;
La siguiente sentencia SELECT no funciona , sin embargo :
SELECCIONAR unit_price * qty_ordered , AVG ( unit_price ) de las órdenes ;
La declaración intenta mezclar las funciones de agregado y matemáticas estándar en una inadecuada manera . El AVG ( ) devuelve un valor único, aunque el unit_price * Cálculo qty_ordered podría devolver miles de valores. No puede tener las dos cosas en una sola sentencia.
Agregados de mezcla
Puede usar varias funciones de agregado en una única sentencia SQL . Esto funciona porque cada agregado devuelve un solo valor . Por ejemplo , si desea que los precios promedio , mínimo y máximo en una tabla de pedidos , se puede utilizar la siguiente declaración :
SELECT AVG ( unit_price ) , MIN ( unit_price ) , MAX ( unit_price ) de las órdenes ;
agregados de mezcla con los campos y funciones estándar
mezclan agregados con campos estándar mediante la agrupación de los registros juntos, como lo muestra la siguiente declaración :
SELECT PRODUCT_NUMBER , AVG ( unit_price ) , MIN ( unit_price ) , MAX ( unit_price ) dE pedidos GROUP BY PRODUCT_NUMBER ;
Esto muestra una línea por el número de producto , que muestra el producto con los precios promedio , mínimo y máximo . Usted puede mezclar las funciones estándar y agregados mientras agrupa los registros juntos , como en el siguiente código SQL : SELECT
PRODUCT_NUMBER , cost_per_m /1000 , AVG ( unit_price ) , MIN ( unit_price ) , MAX ( unit_price ) dE pedidos GROUP BY PRODUCT_NUMBER ;
esta declaración calcula un costo de un solo artículo sobre la base de un "coste por mil ", o el costo por 1,000 unidades , y muestra esta figura , junto con el precio medio , mínimo y máximo . Usted puede mezclar las funciones estándar y global si las funciones estándar se aplican a los agregados , como muestra este ejemplo :
SELECT AVG ( unit_price ) , COUNT ( unit_price ) , AVG ( unit_price ) * COUNT ( unit_price ) de las órdenes ;
Aquí , la instrucción SELECT multiplica los resultados de la AVG () y COUNT ( ) funciona en conjunto .