Si usa una función de grupo en un comando sin la cláusula
GROUP BY
, es equivalente a agrupar todos los
registros.
AVG([DISTINCT]
expr
)
Retorna el valor medio de
. La
opción expr
DISTINCT
puede usarse desde MySQL
5.0.3 para retornar la media de los valores distintos de
expr
.
mysql> SELECT student_name, AVG(test_score) -> FROM student -> GROUP BY student_name;
BIT_AND(
expr
)
Retorna el AND
bit a bit de todos los
bits en expr
. Los cálculos se
realizan con precisión de 64 bits
(BIGINT
) .
En MySQL 5.0, esta función retoran
18446744073709551615
si no hubieran
registros coindicentes. (Este es el valor de un
BIGINT
sin signo con todos los bits a 1.)
BIT_OR(
expr
)
Retorna la OR
bit a bit de todos los bits
en expr
. El cálculo se realiza
con precisión de 64 bits (BIGINT
) .
Esta función retorna 0
si no hay
registros coincidentes.
BIT_XOR(
expr
)
Retorna el XOR
bit a bit de todos los
bits en expr
. Los cálculos se
realizan con precisión de 64 bits
(BIGINT
) .
Esta función retorna 0
si no hay
registros coincidentes.
COUNT(
expr
)
Retorna el contador del número de valores no
NULL
en los registros recibidos por un
comando SELECT
.
mysql> SELECT student.student_name,COUNT(*) -> FROM student,course -> WHERE student.student_id=course.student_id -> GROUP BY student_name;
COUNT(*)
es algo diferente en que retorna
un contador del número de registros retornados, si
contienen o no valores NULL
.
COUNT(*)
está optimizado para retornar
muy rápidamente si SELECT
retorna de una
tabla, no se retornan otras columnas, y no hay cláusula
WHERE
. Por ejemplo:
mysql> SELECT COUNT(*) FROM student;
Esta optimización se aplica sólo a tablas
MyISAM
, ya que un conteo exacto de
registros se almacena para estos tipos de tablas y puede ser
accedido muy rápidamente. Para motores de almacenamiento
transaccionales (InnoDB
,
BDB
), almacenar un contador de registros
es más problemático ya que pueden ocurrir múltiples
transacciones, cada una de las cuales puede afectar al
contador.
COUNT(DISTINCT
expr
,[expr
...])
Retorna un contador del número de valores no
NULL
distintos.
mysql> SELECT COUNT(DISTINCT results) FROM student;
En MySQL, puede obtener el número de combinaciones de
distintas expresiones que no contiene
NULL
dada una lista de expresiones. En
SQL estándar, tendría que hacer una concatenación de
todas las expresiones dentro de COUNT(DISTINCT
...)
.
GROUP_CONCAT(
expr
)
Esta función retorna una cadena resultado con los valores
no NULL
concatenados de un grupo. Retorna
NULL
si no hay valores no
NULL
. La sintaxis completa es la
siguiente:
GROUP_CONCAT([DISTINCT]expr
[,expr
...] [ORDER BY {unsigned_integer
|col_name
|expr
} [ASC | DESC] [,col_name
...]] [SEPARATORstr_val
])
mysql> SELECT student_name, -> GROUP_CONCAT(test_score) -> FROM student -> GROUP BY student_name;
Or:
mysql> SELECT student_name, -> GROUP_CONCAT(DISTINCT test_score -> ORDER BY test_score DESC SEPARATOR ' ') -> FROM student -> GROUP BY student_name;
En MySQL, puede obtener los valores concatenados de
combinaciones de expresiones. Puede eliminar valores
duplicados usando DISTINCT
. Si quiere
ordenar valores en el resultado, debe usar la cláusula
ORDER BY
. Para ordenar en orden inverso,
añada la palabra clave DESC
(descendente) al nombre de la columna que está ordenando
con la cláusula ORDER BY
. El valor por
defecto es orden ascendente; puede especificarse
explícitamente usando la palabra clave
ASC
. SEPARATOR
tiene a
continuación la cadena que debe insertarse entre los
valores del resultado. Por defecto es una coma
(',
'). Puede eliminar el separador
especificando SEPARATOR ''
.
Puede especificar la longitud máxima con la variable de
sistema group_concat_max_len
. La
sintaxis para ello en tiempo de ejecución es la siguiente,
donde val
es un entero sin signo:
SET [SESSION | GLOBAL] group_concat_max_len = val;
Si se especifica una longitud máxima, el resultado se trunca a su longitudo máxima.
MIN([DISTINCT]
,
expr
)MAX([DISTINCT]
expr
)
Retornas los valores máximos y mínimos de
expr
. MIN()
y
MAX()
pueden tener un argumento; en tales
casos retornan el valor de cadena mínimo y máximo.
Consulte Sección 7.4.5, “Cómo utiliza MySQL los índices”. La palabra clave
DISTINCT
puede usarse en MySQL 5.0 para
encontrar el mínimo o máximo de los distintos valores de
expr
; esto es soportado, pero
produce el mismo resultado que omitiendo
DISTINCT
.
mysql> SELECT student_name, MIN(test_score), MAX(test_score) -> FROM student -> GROUP BY student_name;
Para MIN()
, MAX()
, y
otras funciones agregadas, MySQL compara columnas
ENUM
y SET
por su
valor de cadena de caracteres en lugar que por la posición
relativa de la cadena en el conjunto. Esto difiere de cómo
los compara ORDER BY
. Esto se
rectificará en una futura versión de MySQL .
STD(
,
expr
)STDDEV(
expr
)
Retorna la desviación estándar de
expr
. Esta es una extensión del
estándar SQL. La forma STDDEV()
de esta
función se proporciona para compatibilidad con Oracle.
Desde MySQL 5.0.3, la función estándar SQL
STDDEV_POP()
puede usarse en su lugar.
STDDEV_POP(
expr
)
Retorna la desviación estándar de
expr
(la raíz cuadrada de
VAR_POP()
). Esta función se añadió en
MySQL 5.0.3. Antes de 5.0.3, puede usar
STD()
o STDDEV()
, que
son equivalentes pero no SQL estándar.
STDDEV_SAMP(
expr
)
Retorna la muestra de la desviación estándar de
expr
(la raíz cuadrada de
VAR_SAMP()
. Esta función se añadió en
MySQL 5.0.3.
SUM([DISTINCT]
expr
)
Retorna la suma de expr
. Si el
conjunto resultado no tiene registros,
SUM()
retorna NULL
. La
palabra clave DISTINCT
puede usarse en
MySQL 5.0 para sumar sólo los valores distintos de
expr
.
VAR_POP(
expr
)
Retorna la varianza estándar de
expr
. Considera los registros
como la población completa, no como una muestra, así que
tiene el número de registros como denominador. Esta
función se añadió en MySQL 5.0.3. Antes de 5.0.3, puede
usar VARIANCE()
, que es equivalente pero
no SQL estándar.
VAR_SAMP(
expr
)
Retorna la varianza de muestra de
expr
. Esto es, el denominador es
el número de registros menos uno. Esta función se añadió
en MySQL 5.0.3.
VARIANCE(
expr
)
Retorna la varianza estándar de
expr
. Esto es una extensión de
SQL estándar. Desde MySQL 5.0.3, la función SQL estándar
VAR_POP()
puede usarse en su lugar.
Ésta es una traducción del manual de referencia de MySQL, que puede encontrarse en dev.mysql.com. El manual de referencia original de MySQL está escrito en inglés, y esta traducción no necesariamente está tan actualizada como la versión original. Para cualquier sugerencia sobre la traducción y para señalar errores de cualquier tipo, no dude en dirigirse a mysql-es@vespito.com.