Saltar ao contido

SQL/Funcións colectivas

En Galilibros, o Wikibooks en galego.
< SQL
SQL
← Volver a Funcións escalares Funcións colectivas Seguir con INSERT


As funcións colectivas permiten obter un só valor como resultado de realizar unha operación con todos os valores dun campo.

AVG(campo)
Calcula a media dos valores dun campo.
Á hora de facer a media, AVG() non interpreta os valores nulos coma ceros. Simplemente ignora as filas nas que nas que o valor do campo do que se vai facer a media é nulo.
Exemplo: imaxinemos unha táboa con 5 filas, e nun campo, ditas filas teñen os valores: 10, 10, nulo, 10, nulo. Se facemos con AVG(campo) a media, obteremos 30 / 3 = 10. Pero xeralmente o que quereríamos é que interpretase coma ceros os nulos, e fixese 30 / 5 = 6. Para obter este último resultado, teremos que valernos da combinación dun SUM(campo) e un COUNT(*): SUM(campo) / COUNT(*) = 30 / 5 = 6.
MAX(campo)
Devolve o máximo valor do campo.
MIN(campo)
Devolve o valor mínimo do campo.
SUM(campo)
Suma todos os valores contidos no campo.
COUNT(un campo calquera)
Enumera as ocorrencias. Pode usarse sempre da forma COUNT(*).
Pode utilizarse con DISTINCT:
COUNT(DISTINCT campo), que contará as ocorrencias en que o valor de campo non se repita.

Estas funcións non teñen que actuar necesariamente sobre un campo directamente. Pode substituírse un campo por unha expresión, e dita expresión pode conter ou non campos.

A hora de utilizar estas funcións dentro dun WHERE, hai que facelo introducíndoas nun SELECT subordinado.

Téñase en conta que as funcións AVG e SUM poden ter problemas á hora de traballar con valores nulos, posto que non é o mesmo nulo que cero.


SQL
← Volver a Funcións escalares Funcións colectivas Seguir con INSERT