32 - sum, min, max, avg (Otras funciones de agrupamiento) |
Hemos visto que SQL tiene una función que nos permiten contar registros (count), existen otras funciones de agrupamiento muy útiles que nos permiten calcular sumas, promedios, obtener valores máximos y mínimos.
Se pueden usar en una instrucción "select" y combinarlas con la cláusula "group by".
Todas estas funciones retornan "null" si ningún registro cumple con la condición del "where", excepto "count" que en tal caso retorna cero.
El tipo de dato del campo determina las funciones que se pueden emplear con ellas.
Las relaciones entre las funciones de agrupamiento y los tipos de datos es la siguiente:
Para probar alguna de estas funciones implementaremos un algoritmo que muestre el precio mayor almacenado en la tabla articulos (pagina1.asp):
<%option explicit%> <html> <head> <title>problema</title> </head> <body> <% dim conexion set conexion = Server.CreateObject("ADODB.Connection") conexion.ConnectionString = "Provider=SQLOLEDB.1;" & _ "Data Source=.;" & _ "Integrated Security=SSPI;" & _ "Persist Security Info=False;" & _ "Initial Catalog=wi630629_aspya" conexion.Open dim registros set registros = Server.CreateObject("ADODB.RecordSet") registros.open "select max(precio) as preciomay from articulos",conexion if not registros.eof then response.write("Precio mayor de la tabla artículos:" ®istros("preciomay")) else response.write("La tabla artículos está vacía") end if conexion.close %> </body> </html>
Cuando utilizamos alguna de las cuatro funciones presentadas en este concepto debemos necesariamente disponer el if para verificar que retornó un registro (no retorna si la tabla se encuentra vacía)
registros.open "select max(precio) as preciomay from articulos",conexion
Como podemos observar le indicamos a la función max el campo a analizar.