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:

  • count: se puede emplear con cualquier tipo de dato.
  • min y max: con cualquier tipo de dato.
  • sum y avg: sólo en campos de tipo numérico.

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:" &registros("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.


Retornar