SQL/Funcións colectivas
< 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 → |