FUNCIONES DE VALOR AGREGADO O FUNCIONES DE VALORES:
GRUPOS DE
Los agregados en Postgres están expresados en términos de funciones de transición de estado. Es decir, un agregado puede estar definido en términos de un estado que es modificado cuando una instancia es procesada. Algunas funciones de estado miran un valor particular en la instancia cuando calculan el nuevo estado (sfunc1 en la sintaxis de create aggregate ) mientras que otras sólo se preocupan de su estado interno (sfunc2). Si definimos un agregado que utiliza solamente sfunc1, definimos un agregado que computa una función de los atributos de cada instancia. "Sum" es un ejemplo de este tipo de agregado. "Sum" comienza en cero y siempre añade el valor de la instancia actual a su total. Utilizaremos int4pl que está integrado en Postgres para realizar esta adición. AVG(n)= Calcula el valor medio de "n" ignorando los valores nulos. COUNT (* | Expresión)= Cuenta el numero de veces que la expresión evalúa algún dato con valor no nulo. La opción "*" cuenta todas las filas seleccionadas. MAX (expresión)= Calcula el máximo………………………………………………... MIN (expresión)= Calcula el mínimo…………………………………………………. SUM (expresión)= Obtiene la suma de los valores de la expresión. GREATEST (valor1, valor2…)= Obtiene el mayor valor de la lista. LEAST (valor1, valor2…)= Obtiene el menor valor de la lista. FUNCIONES MÍN Y MÁX (MIN, MAX): Devuelven el mínimo o el máximo de un conjunto de valores de un campo especificado en una consulta. Puede utilizar Mín y Máx para determinar los valores superiores e inferiores de un campo basándose en la agregación especificada o agrupación. Por ejemplo, podría utilizar estas funciones para devolver los gatos de envío más altos y más bajos. Si no hay ninguna agregación especificada, se utiliza la tabla completa. GROUP BY: Combina los registros con valores idénticos, en la lista de campos especificados, en un único registro. Para cada registro se crea un valor sumario si se incluye una función SQL agregada, como por ejemplo Sum o Count, en la instrucción SELECT. Su sintaxis es: SELECT campos FROM tabla WHERE criterio GROUP BY campos del grupo Se utiliza la cláusula WHERE para excluir aquellas filas que no desea agrupar, y la cláusula HAVING para filtrar los registros una vez agrupados. Una vez que GROUP BY ha combinado los registros, HAVING muestra cualquier registro agrupado por la cláusula GROUP BY que satisfaga las condiciones de la cláusula HAVING. HAVING es similar a WHERE, determina qué registros se seleccionan. Una vez que los registros se han agrupado utilizando GROUP BY, HAVING determina cuales de ellos se van a mostrar.
AVG es un ejemplo de un agregado que requiere tanto una función para calcular la suma actual y una función para calcular el contador actual. Cuando todas las instancias han sido procesadas, la respuesta final para el agregado es la suma actual dividida por el contador actual. Utilizamos las rutinas int4pl y int4inc que utilizamos anteriormente así como también la rutina de división entera de Postgres , int4div, para calcular la división de la suma por el contador. El AVG () Función: El AVG () función devuelve el valor medio de una columna numérica. Calcula la media aritmética de un conjunto de valores contenidos en un campo especificado de una consulta. Su sintaxis es la siguiente: Avg(expr) En donde expr representa el campo que contiene los datos numéricos para los que se desea calcular la media o una expresión que realiza un cálculo utilizando los datos de dicho campo. La media calculada por Avg es la media aritmética (la suma de los valores dividido por el número de valores). La función Avg no incluye ningún campo Null en el cálculo. SELECT Avg(Gastos) AS Promedio…………………………………………………………… FROM Pedidos WHERE Gastos > 100 COUNT "Count" comienza a cero y añade uno a su total para cada instancia, ignorando el valor de instancia. Aquí, utilizamos la rutina integrada int4inc para hacer el trabajo por nosotros. Esta rutina incrementa (añade uno) su argumento. La función agregada de SQL COUNT es usado para contar el número de filas de una tabla de base de datos. La sintaxis SQL COUNT es simple y se parece a esto: SELECT COUNT (column1)………………………………………………… …... DE Tabla1 Si queremos contar el número de clientes en la mesa de nuestros clientes, nosotros usaremos la siguiente sentencia SQL COUNT declaración: SELECT COUNT (Apellido) COMO NumberOfCustomers………………… FROM Clientes HAVING Ahora regresamos a las funciones de agregados. ¿Recuerda que utilizamos la palabra clave SUM para calcular las ventas totales para todos los negocios? ¿Y si quisiéramos calcular el total de ventas para cada negocio? Entonces, necesitamos hacer dos cosas: Primero, necesitamos asegurarnos de que hayamos seleccionado el nombre del negocio así como también las ventas
totales. Segundo, debemos asegurarnos de que todas las sumas de las ventas estén GROUP BY negocios. La sintaxis SQL correspondiente es, SELECT "nombre1_columna", SUM("nombre2_columna")…………………… FROM "nombre_tabla"……………………………………………………………….. GROUP BY "nombre1-columna" Otra cosa que la gente puede querer hacer es limitar el resultado según la suma correspondiente (o cualquier otra función de agregado). Por ejemplo, podríamos desear ver sólo los negocios con ventas mayores a 1 500 €, dólares. En vez de utilizar la cláusula WHERE en la instrucción SQL, a pesar de que necesitemos utilizar la cláusula HAVING, que se reserva para funciones de agregados. La cláusula HAVING se coloca generalmente cerca del fin de la instrucción SQL, y la instrucción SQL con la cláusula SUM: "Sum" es un ejemplo de este tipo de agregado. "Sum" comienza en cero y siempre añade el valor de la instancia actual a su total. Utilizaremos int4pl que está integrado en Postgres para realizar esta adición. Sum Devuelve la suma del conjunto de valores contenido en un campo especifico de una consulta. Su sintaxis es: Sum(expr) En donde expr representa el nombre del campo que contiene los datos que desean sumarse o una expresión que realiza un cálculo utilizando los datos de dichos campos. Los operandos de expr pueden incluir el nombre de un campo de una tabla, una constante o una función (la cual puede ser intrínseca o definida por el usuario pero no otras de las funciones agregadas de SQL).
CONSULTAS Con base en la entidad producto que contiene los siguientes atributos IdProducto, 1. Seleccionar el producto que tiene el máximo precio
2. Seleccionar el producto que tiene el mínimo precio
3. Determinar el promedio de productos que existen
4. Determinar la desviación estándar del precio
5. Establecer el valor total del stock
6. Contar cuantos tipos de productos existen