

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Funciones de agregación
<a name="sql-functions-agg-spark"></a>

Las funciones agregadas de AWS Clean Rooms Spark SQL se utilizan para realizar cálculos u operaciones en un grupo de filas y devolver un único valor. Son esenciales para las tareas de análisis y resumen de datos.

AWS Clean Rooms Spark SQL admite las siguientes funciones de agregación:

**Topics**
+ [Función ANY\$1VALUE](ANY_VALUE.md)
+ [Función APPROX COUNT\$1DISTINCT](approx-count-distinct.md)
+ [Función APROX. PERCENTIL](approx-percentile.md)
+ [Función de AVG](avg-function.md)
+ [Función BOOL\$1AND](BOOL_AND.md)
+ [Función BOOL\$1OR](BOOL_OR.md)
+ [Función CARDINALIDAD](CARDINALITY.md)
+ [Función COLLECT\$1LIST](COLLECT_LIST.md)
+ [Función COLLECT\$1SET](COLLECT_SET.md)
+ [Funciones COUNT y COUNT DISTINCT](count-function.md)
+ [Función COUNT](COUNT.md)
+ [Función MAX](MAX.md)
+ [Función MEDIAN](MEDIAN.md)
+ [Función MIN](MIN.md)
+ [Función PERCENTIL](percentile.md)
+ [Función de ASIMETRÍA](SKEWNESS.md)
+ [Funciones STDDEV\$1SAMP y STDDEV\$1POP](STDDEV_functions.md)
+ [Funciones SUM y SUM DISTINCT](sum-function.md)
+ [Funciones VAR\$1SAMP y VAR\$1POP](VARIANCE_functions.md)

# Función ANY\$1VALUE
<a name="ANY_VALUE"></a>

La función ANY\$1VALUE devuelve cualquier valor de los valores de expresión de entrada de una manera que no sea determinista. Esta función puede devolver un valor NULL si el resultado de la expresión de entrada no implica que se devuelva ninguna fila. 

## Sintaxis
<a name="ANY_VALUE-synopsis"></a>

```
ANY_VALUE (expression[, isIgnoreNull] )
```

## Argumentos
<a name="ANY_VALUE-arguments"></a>

 *expression*   
La columna o la expresión de destino en la que opera la función. La *expresión* corresponde a uno de los siguientes tipos de datos:

*isIgnoreNull*  
Un booleano que determina si la función debe devolver únicamente valores no nulos.

## Devuelve
<a name="ANY_VALUE-returns"></a>

Devuelve el mismo tipo de datos que *expresión*. 

## Notas de uso
<a name="ANY_VALUE-usage-notes"></a>

Si una instrucción que especifica la función ANY\$1VALUE para una columna también incluye una segunda referencia de columna, la segunda columna debe aparecer en una cláusula GROUP BY o debe incluirse en una función de agrupación. 

## Ejemplos
<a name="ANY_VALUE-examples"></a>

El siguiente ejemplo devuelve una instancia de cualquier `dateid` donde `eventname` es `Eagles`. 

```
select any_value(dateid) as dateid, eventname from event where eventname ='Eagles' group by eventname;
```

A continuación, se muestran los resultados.

```
dateid | eventname
-------+---------------
 1878  | Eagles
```

El siguiente ejemplo devuelve una instancia de cualquier `dateid` donde `eventname` es `Eagles` o `Cold War Kids`. 

```
select any_value(dateid) as dateid, eventname from event where eventname in('Eagles', 'Cold War Kids') group by eventname;
```

A continuación, se muestran los resultados.

```
dateid | eventname
-------+---------------
 1922  | Cold War Kids
 1878  | Eagles
```

# Función APPROX COUNT\$1DISTINCT
<a name="approx-count-distinct"></a>

APPROX COUNT\$1DISTINCT proporciona una forma eficaz de estimar el número de valores únicos en una columna o conjunto de datos.

## Sintaxis
<a name="approx-count-distinct-syntax"></a>

```
approx_count_distinct(expr[, relativeSD])
```

## Argumentos
<a name="approx-count-distinct-arguments"></a>

 *expr*   
La expresión o columna para la que desea estimar el número de valores únicos.  
Puede ser una sola columna, una expresión compleja o una combinación de columnas. 

*Relativo D.*  
Parámetro opcional que especifica la desviación estándar relativa deseada de la estimación.  
Es un valor entre 0 y 1, que representa el error relativo máximo aceptable de la estimación. Un valor de RelativeSD más pequeño dará como resultado una estimación más precisa pero más lenta.   
Si no se proporciona este parámetro, se utiliza un valor predeterminado (normalmente alrededor del 0,05 o el 5%).

## Devuelve
<a name="approx-count-distinct-returns"></a>

Devuelve la cardinalidad estimada en HyperLogLog \$1\$1. RelativeSD define la desviación estándar relativa máxima permitida.

## Ejemplo
<a name="approx-count-distinct-example"></a>

La siguiente consulta estima el número de valores únicos de la `col1` columna, con una desviación estándar relativa del 1% (0,01).

```
SELECT approx_count_distinct(col1, 0.01)
```

La siguiente consulta estima que hay 3 valores únicos en la `col1` columna (los valores 1, 2 y 3).

```
SELECT approx_count_distinct(col1) FROM VALUES (1), (1), (2), (2), (3) tab(col1)
```

# Función APROX. PERCENTIL
<a name="approx-percentile"></a>

El PERCENTIL APROXIMADO se usa para estimar el valor percentil de una expresión o columna determinada sin tener que ordenar todo el conjunto de datos. Esta función resulta útil en situaciones en las que es necesario comprender rápidamente la distribución de un conjunto de datos grande o realizar un seguimiento de las métricas basadas en percentiles, sin la sobrecarga computacional que supone realizar un cálculo de percentil exacto. Sin embargo, es importante entender las ventajas y desventajas entre velocidad y precisión, y elegir la tolerancia de errores adecuada en función de los requisitos específicos de cada caso de uso.

## Sintaxis
<a name="approx-percentile-syntax"></a>

```
APPROX_PERCENTILE(expr, percentile [, accuracy])
```

## Argumentos
<a name="approx-percentile-syntax.arguments"></a>

 *expr*   
La expresión o columna para la que desea estimar el valor del percentil.  
Puede ser una sola columna, una expresión compleja o una combinación de columnas. 

*percentil*  
El valor percentil que desea estimar, expresado como un valor entre 0 y 1.   
Por ejemplo, 0,5 correspondería al percentil 50 (mediana).

*precisión*  
Parámetro opcional que especifica la precisión deseada de la estimación del percentil. Es un valor entre 0 y 1, que representa el error relativo máximo aceptable de la estimación. Un `accuracy` valor menor dará como resultado una estimación más precisa pero más lenta. Si no se proporciona este parámetro, se utiliza un valor predeterminado (normalmente alrededor del 0,05 o el 5%).

## Devuelve
<a name="approx-percentile-syntax.returns"></a>

Devuelve el percentil aproximado de la columna de intervalo numérico o ANSI col, que es el valor más pequeño de los valores de columna ordenados (ordenados de menor a mayor), de modo que no más del porcentaje de valores de col sea inferior o igual a ese valor. 

El valor del porcentaje debe estar comprendido entre 0,0 y 1,0. El parámetro de precisión (predeterminado: 10000) es un literal numérico positivo que controla la precisión de la aproximación a costa de la memoria. 

Un valor de precisión más alto produce una mejor precisión, `1.0/accuracy` es el error relativo de la aproximación. 

Cuando el porcentaje es una matriz, cada valor de la matriz porcentual debe estar entre 0.0 y 1.0. En este caso, devuelve la matriz de percentiles aproximada de la columna col en la matriz de porcentajes dada.

## Ejemplos
<a name="approx-percentile-syntax-example"></a>

La siguiente consulta estima el percentil 95 de la `response_time` columna, con un error relativo máximo del 1% (0,01).

```
SELECT APPROX_PERCENTILE(response_time, 0.95, 0.01) AS p95_response_time
FROM my_table;
```

La siguiente consulta estima los valores de los percentiles 50, 40 y 10 de la columna de la tabla. `col` `tab`

```
SELECT approx_percentile(col, array(0.5, 0.4, 0.1), 100) FROM VALUES (0), (1), (2), (10) AS tab(col)
```

La siguiente consulta estima el percentil 50 (mediana) de los valores de la columna col.

```
SELECT approx_percentile(col, 0.5, 100) FROM VALUES (0), (6), (7), (9), (10) AS tab(col)
```

# Función de AVG
<a name="avg-function"></a>

La función AVG devuelve el promedio (media aritmética) de los valores de la expresión de entrada. La función AVG funciona con valores numéricos e ignora los valores NULL.

## Sintaxis
<a name="avg-function-syntax"></a>

```
AVG (column)
```

## Argumentos
<a name="avg-function-arguments"></a>

*column*  
La columna de destino sobre la que opera la función. La columna corresponde a uno de los siguientes tipos de datos:  
+ SMALLINT
+ INTEGER
+ BIGINT
+ DECIMAL
+ DOUBLE
+ FLOAT

## Tipos de datos
<a name="avg-function-data-types"></a>

Los tipos de argumentos que admite la función AVG son SMALLINT INTEGERBIGINT,DECIMAL, yDOUBLE.

Los tipos de retorno que admite la función AVG son los siguientes:
+ BIGINT para cualquier argumento de tipo entero
+ DOUBLE para un argumento de punto flotante
+ Devuelve el mismo tipo de datos como expresión para cualquier otro tipo de argumento

La precisión predeterminada para un resultado de la función AVG con un argumento DECIMAL de es 38. La escala del resultado es la misma que la escala del argumento. Por ejemplo, una AVG de una columna DEC(5,2) devuelve un tipo de datos DEC(38,2).

## Ejemplo
<a name="avg-function-example"></a>

Encontrar la cantidad promedio vendida por transacción en la tabla SALES:

```
select avg(qtysold) from sales;
```

# Función BOOL\$1AND
<a name="BOOL_AND"></a>

La función BOOL\$1AND funciona en una sola columna o expresión con valores booleanos o enteros. Esta función aplica una lógica similar a las funciones BIT\$1AND y BIT\$1OR. Para esta función, el tipo de retorno es un valor booleano (`true` o `false`).

Si todos los valores de un conjunto son verdaderos, la función BOOL\$1AND devuelve `true` (`t`). Si todo valor es falso, la función devuelve `false` (`f`).

## Sintaxis
<a name="BOOL_AND-synopsis"></a>

```
BOOL_AND ( [DISTINCT | ALL] expression )
```

## Argumentos
<a name="BOOL_AND-arguments"></a>

 *expression*   
La columna o expresión de destino sobre la que opera la función. Esta expresión debe tener un tipo de datos booleano o entero. El tipo de retorno de la función es booleano.

DISTINCT \$1 ALL  
Con el argumento DISTINCT, la función elimina todos los valores duplicados para la expresión especificada antes de calcular el resultado. Con el argumento ALL, la función retiene todos los valores duplicados. El valor predeterminado es ALL. 

## Ejemplos
<a name="bool_and_example"></a>

Puede utilizar funciones booleanas con expresiones booleanas o expresiones enteras. 

Por ejemplo, la siguiente consulta devuelve resultados de la tabla estándar USERS en la base de datos TICKIT, que tiene varias columnas con valores booleanos.

La función BOOL\$1AND devuelve `false` para las cinco filas. A no todos los usuarios en cada uno de esos estados les gusta deportes.

```
select state, bool_and(likesports) from users 
group by state order by state limit 5;

state | bool_and
------+---------
AB    | f
AK    | f
AL    | f
AZ    | f
BC    | f
(5 rows)
```

# Función BOOL\$1OR
<a name="BOOL_OR"></a>

La función BOOL\$1OR funciona en una única columna o expresión booleana o entera. Esta función aplica una lógica similar a las funciones BIT\$1AND y BIT\$1OR. Para esta función, el tipo de retorno es un valor booleano (`true`, `false` o `NULL`).

Si un valor en un conjunto es `true`, la función BOOL\$1OR devuelve `true` (`t`). Si un valor en un conjunto es `false`, la función devuelve `false` (`f`). Se puede devolver NULL si se desconoce el valor.

## Sintaxis
<a name="BOOL_OR-synopsis"></a>

```
BOOL_OR ( [DISTINCT | ALL] expression )
```

## Argumentos
<a name="BOOL_OR-arguments"></a>

 *expression*   
La columna o expresión de destino sobre la que opera la función. Esta expresión debe tener un tipo de datos booleano o entero. El tipo de retorno de la función es booleano.

DISTINCT \$1 ALL  
Con el argumento DISTINCT, la función elimina todos los valores duplicados para la expresión especificada antes de calcular el resultado. Con el argumento ALL, la función retiene todos los valores duplicados. El valor predeterminado es ALL. 

## Ejemplos
<a name="bool_or_example"></a>

Puede utilizar las funciones booleanas con expresiones booleanas o expresiones enteras. Por ejemplo, la siguiente consulta devuelve resultados de la tabla estándar USERS en la base de datos TICKIT, que tiene varias columnas con valores booleanos.

La función BOOL\$1OR devuelve `true` para las cinco filas. A al menos un usuario en cada uno de esos estados les gusta deportes.

```
select state, bool_or(likesports) from users 
group by state order by state limit 5;

state | bool_or 
------+--------
AB    | t      
AK    | t      
AL    | t       
AZ    | t       
BC    | t       
(5 rows)
```

El ejemplo siguiente devuelve NULL.

```
SELECT BOOL_OR(NULL = '123')
               bool_or
------                  
NULL
```

# Función CARDINALIDAD
<a name="CARDINALITY"></a>

La función CARDINALIDAD devuelve el tamaño de una expresión ARRAY o MAP (*expr*).

Esta función es útil para encontrar el tamaño o la longitud de una matriz.

## Sintaxis
<a name="CARDINALITY-syntax"></a>

```
cardinality(expr)
```

## Argumentos
<a name="CARDINALITY-arguments"></a>

 *expr*   
Expresión matricial o MAP.

## Devuelve
<a name="CARDINALITY-returns"></a>

Devuelve el tamaño de una matriz o un mapa (INTEGER). 

La función devuelve `NULL` una entrada nula si `sizeOfNull` se establece en `false` o `enabled` se establece en`true`. 

De lo contrario, la función devuelve `-1` una entrada nula. Con la configuración predeterminada, la función vuelve `-1` para una entrada nula.

## Ejemplo
<a name="CARDINALITY-example"></a>

La siguiente consulta calcula la cardinalidad, o el número de elementos, de la matriz dada. La matriz (`'b', 'd', 'c', 'a'`) tiene 4 elementos, por lo que el resultado de esta consulta sería`4`.

```
SELECT cardinality(array('b', 'd', 'c', 'a'));
 4
```

# Función COLLECT\$1LIST
<a name="COLLECT_LIST"></a>

La función COLLECT\$1LIST recopila y devuelve una lista de elementos no únicos. 

Este tipo de función resulta útil cuando se desean recopilar varios valores de un conjunto de filas en una única estructura de datos de matriz o lista.

**nota**  
La función no es determinista porque el orden de los resultados recopilados depende del orden de las filas, que puede no ser determinista tras realizar una operación de barajado.

## Sintaxis
<a name="COLLECT_LIST-syntax"></a>

```
collect_list(expr)
```

## Argumentos
<a name="COLLECT_LIST-arguments"></a>

 *expr*   
Expresión de cualquier tipo.

## Devuelve
<a name="COLLECT_LIST-returns"></a>

Devuelve un ARRAY del tipo argumento. El orden de los elementos de la matriz no es determinista. 

Se excluyen los valores NULL.

Si se especifica DISTINCT, la función recopila solo valores únicos y es sinónimo de función `collect_set ` agregada.

## Ejemplo
<a name="COLLECT_LIST-example"></a>

La siguiente consulta recopila todos los valores de la columna col en una lista. La `VALUES` cláusula se utiliza para crear una tabla en línea con tres filas, donde cada fila tiene una columna única con los valores 1, 2 y 1, respectivamente. Luego, la `collect_list() ` función se usa para agregar todos los valores de la columna col en una sola matriz. El resultado de esta sentencia SQL sería la matriz`[1,2,1]`, que contiene todos los valores de la columna col en el orden en que aparecen en los datos de entrada.

```
SELECT collect_list(col) FROM VALUES (1), (2), (1) AS tab(col);
 [1,2,1]
```

# Función COLLECT\$1SET
<a name="COLLECT_SET"></a>

La función COLLECT\$1SET recopila y devuelve un conjunto de elementos únicos. 

Esta función resulta útil cuando se desean recopilar todos los valores distintos de un conjunto de filas en una sola estructura de datos, sin incluir ningún duplicado.

**nota**  
La función no es determinista porque el orden de los resultados recopilados depende del orden de las filas, que puede no ser determinista tras realizar una operación de barajado.

## Sintaxis
<a name="COLLECT_SET-syntax"></a>

```
collect_set(expr)
```

## Argumentos
<a name="COLLECT_SET-arguments"></a>

 *expr*   
Expresión de cualquier tipo excepto MAP.

## Devuelve
<a name="COLLECT_SET-returns"></a>

Devuelve un ARRAY del tipo argumento. El orden de los elementos de la matriz no es determinista. 

Se excluyen los valores NULL.

## Ejemplo
<a name="COLLECT_SET-example"></a>

La siguiente consulta recopila todos los valores únicos de la columna col en un conjunto. La `VALUES` cláusula se utiliza para crear una tabla en línea con tres filas, donde cada fila tiene una columna única con los valores 1, 2 y 1, respectivamente. Luego, la `collect_set()` función se usa para agregar todos los valores únicos de la columna col en un solo conjunto. El resultado de esta sentencia SQL sería el conjunto`[1,2]`, que contiene los valores únicos de la columna col. El valor duplicado de 1 solo se incluye una vez en el resultado.

```
SELECT collect_set(col) FROM VALUES (1), (2), (1) AS tab(col);
 [1,2]
```

# Funciones COUNT y COUNT DISTINCT
<a name="count-function"></a>

La función COUNT cuenta las filas definidas por la expresión. La función COUNT DISTINCT calcula el número de valores que no son NULL diferentes en una columna o expresión. Elimina todos los valores duplicados de la expresión especificada antes de realizar el recuento.

## Sintaxis
<a name="count-function-syntax"></a>

```
COUNT (DISTINCT column)
```

## Argumentos
<a name="count-function-arguments"></a>

*column*  
La columna de destino sobre la que opera la función.

## Tipos de datos
<a name="count-function-data-types"></a>

La función COUNT y la función COUNT DISTINCT admite todos los tipos de datos de argumentos.

La función COUNT DISTINCT devuelve BIGINT.

## Ejemplos
<a name="count-function-examples"></a>

Cuente todos los usuarios del estado de Florida.

```
select count (identifier) from users where state='FL';
```

Cuenta todos los espacios únicos IDs desde la EVENT mesa.

```
select count (distinct venueid) as venues from event;
```

# Función COUNT
<a name="COUNT"></a>

 La función COUNT cuenta las filas definidas por la expresión.

La función COUNT tiene las siguientes variaciones.
+ COUNT ( \$1 ) cuenta todas las filas en la tabla destino, incluya o no valores nulos.
+ COUNT ( *expresión* ) calcula el número de filas con valores no NULL de una determinada columna o expresión.
+ COUNT ( DISTINCT *expresión* ) calcula el número de valores no NULL diferentes de una columna o expresión.

## Sintaxis
<a name="COUNT-synopsis"></a>

```
COUNT( * | expression )
```

```
COUNT ( [ DISTINCT | ALL ] expression )
```

## Argumentos
<a name="COUNT-arguments"></a>

 *expression*   
La columna o expresión de destino sobre la que opera la función. La función COUNT admite todos los tipos de datos de argumentos.

DISTINCT \$1 ALL  
Con el argumento DISTINCT, la función elimina todos los valores duplicados de la expresión especificada antes de hacer el conteo. Con el argumento ALL, la función retiene todos los valores duplicados de la expresión para el conteo. El valor predeterminado es ALL.

## Tipo de devolución
<a name="Supported_data_types_count"></a>

La función COUNT devuelve BIGINT.

## Ejemplos
<a name="COUNT-examples"></a>

Cuente todos los usuarios del estado de Florida:

```
select count(*) from users where state='FL';

count
-------
510
```

Cuenta todos los nombres de evento de la tabla EVENT:

```
select count(eventname) from event;

count
-------
8798
```

Cuenta todos los nombres de evento de la tabla EVENT:

```
select count(all eventname) from event;

count
-------
8798
```

Cuenta todos los lugares únicos IDs de la tabla de EVENTOS:

```
select count(distinct venueid) as venues from event;

venues
--------
204
```

Contar la cantidad de veces que cada vendedor indicó lotes de más de cuatro tickets para venta. Agrupar los resultados según ID de vendedor:

```
select count(*), sellerid from listing 
where numtickets > 4
group by sellerid
order by 1 desc, 2;

count | sellerid
------+----------
12    |    6386
11    |    17304
11    |    20123
11    |    25428
...
```

# Función MAX
<a name="MAX"></a>

 La función MAX devuelve el valor máximo en un conjunto de filas. Es posible utilizar DISTINCT o ALL pero no influye en el resultado. 

## Sintaxis
<a name="MAX-synopsis"></a>

```
MAX ( [ DISTINCT | ALL ] expression )
```

## Argumentos
<a name="MAX-arguments"></a>

 *expression*   
La columna o expresión de destino sobre la que opera la función. La *expresión* es cualquier tipo de dato numérico.

DISTINCT \$1 ALL   
Con el argumento DISTINCT, la función elimina todos los valores duplicados de la expresión especificada antes de calcular el máximo. Con el argumento ALL, la función retiene todos los valores duplicados de la expresión especificada para calcular el máximo. El valor predeterminado es ALL. 

## Tipos de datos
<a name="Supported_data_types_max"></a>

Devuelve el mismo tipo de datos que *expresión*. 

## Ejemplos
<a name="MAX-examples"></a>

Encontrar el precio más alto pagado de todas las ventas: 

```
select max(pricepaid) from sales;

max
----------
12624.00
(1 row)
```

Encontrar el precio más alto pagado por ticket de todas las ventas: 

```
select max(pricepaid/qtysold) as max_ticket_price
from sales;

max_ticket_price
-----------------
2500.00000000
(1 row)
```

# Función MEDIAN
<a name="MEDIAN"></a>

## Sintaxis
<a name="MEDIAN-synopsis"></a>

```
MEDIAN ( median_expression )
```

## Argumentos
<a name="MEDIAN-arguments"></a>

 *expresión\$1de\$1mediana*   
La columna o expresión de destino sobre la que opera la función.

# Función MIN
<a name="MIN"></a>

 La función MIN devuelve el valor mínimo en un conjunto de filas. Es posible utilizar DISTINCT o ALL pero no influye en el resultado.

## Sintaxis
<a name="MIN-synopsis"></a>

```
MIN ( [ DISTINCT | ALL ] expression )
```

## Argumentos
<a name="MIN-arguments"></a>

 *expression*   
La columna o expresión de destino sobre la que opera la función. La *expresión* es cualquier tipo de datos numéricos.

DISTINCT \$1 ALL  
Con el argumento DISTINCT, la función elimina todos los valores duplicados de la expresión especificada antes de calcular el mínimo. Con el argumento ALL, la función retiene todos los valores duplicados de la expresión especificada para calcular el mínimo. El valor predeterminado es ALL.

## Tipos de datos
<a name="Supported_data_types_min"></a>

 Devuelve el mismo tipo de datos que *expresión*. 

## Ejemplos
<a name="MIN-examples"></a>

Encontrar el precio más bajo pagado de todas las ventas:

```
select min(pricepaid) from sales;

min
-------
20.00
(1 row)
```

Encontrar el precio más bajo pagado por ticket de todas las ventas:

```
select min(pricepaid/qtysold)as min_ticket_price
from sales;

min_ticket_price
------------------
20.00000000
(1 row)
```

# Función PERCENTIL
<a name="percentile"></a>

La función PERCENTIL se utiliza para calcular el valor percentil exacto ordenando primero los valores de la `col` columna y, a continuación, buscando el valor en el valor especificado. `percentage`

La función PERCENTIL es útil cuando necesita calcular el valor percentil exacto y el coste computacional es aceptable para su caso de uso. Proporciona resultados más precisos que la función APPROX\$1PERCENTILE, pero puede ser más lenta, especialmente para conjuntos de datos grandes. 

Por el contrario, la función APPROX\$1PERCENTILE es una alternativa más eficiente que puede proporcionar una estimación del valor del percentil con una tolerancia de error específica, lo que la hace más adecuada para escenarios en los que la velocidad es una prioridad mayor que la precisión absoluta.

## Sintaxis
<a name="percentile-syntax"></a>

```
percentile(col, percentage [, frequency])
```

## Argumentos
<a name="percentile-arguments"></a>

 *col*   
La expresión o columna para la que desea calcular el valor del percentil.

*porcentaje*  
El valor percentil que desea calcular, expresado como un valor entre 0 y 1.   
Por ejemplo, 0,5 correspondería al percentil 50 (mediana).

*frecuencia*  
Parámetro opcional que especifica la frecuencia o el peso de cada valor de la `col` columna. Si se proporciona, la función calculará el percentil en función de la frecuencia de cada valor.

## Devuelve
<a name="percentile-returns"></a>

Devuelve el valor percentil exacto de la columna de intervalo numérico o ANSI col en el porcentaje indicado. 

El valor del porcentaje debe estar comprendido entre 0,0 y 1,0. 

El valor de la frecuencia debe ser una integral positiva

## Ejemplo
<a name="percentile-example"></a>

La siguiente consulta busca un valor mayor o igual al 30% de los valores de la `col` columna. Como los valores son 0 y 10, el percentil 30 es 3,0, porque es el valor que es mayor o igual al 30% de los datos.

```
SELECT percentile(col, 0.3) FROM VALUES (0), (10) AS tab(col);
 3.0
```

# Función de ASIMETRÍA
<a name="SKEWNESS"></a>

La función ASIMETRÍA devuelve el valor de asimetría calculado a partir de los valores de un grupo. 

La asimetría es una medida estadística que describe la asimetría o la falta de simetría en un conjunto de datos. Proporciona información sobre la forma de la distribución de los datos.

Esta función puede resultar útil para comprender las propiedades estadísticas de un conjunto de datos y servir de base para futuros análisis o para la toma de decisiones.

## Sintaxis
<a name="SKEWNESS-syntax"></a>

```
skewness(expr)
```

## Argumentos
<a name="SKEWNESS-arguments"></a>

 *expr*   
Expresión que se evalúa como un valor numérico.

## Devuelve
<a name="SKEWNESS-returns"></a>

Devuelve DOUBLE. 

Si se especifica DISTINCT, la función solo funciona con un conjunto único de valores de *expr.* 

## Ejemplos
<a name="SKEWNESS-examples"></a>

La siguiente consulta calcula la asimetría de los valores de la columna. `col` En este ejemplo, la `VALUES` cláusula se usa para crear una tabla en línea con cuatro filas, donde cada fila tiene una sola columna `col` con los valores -10, -20, 100 y 1000. A continuación, la `skewness()` función se utiliza para calcular la asimetría de los valores de la columna. `col` El resultado, 1,1135657469022011, representa el grado y la dirección de la asimetría de los datos. Un valor de asimetría positivo indica que los datos están sesgados hacia la derecha y que la mayoría de los valores se concentran en el lado izquierdo de la distribución. Un valor de asimetría negativo indica que los datos están sesgados hacia la izquierda y que la mayoría de los valores se concentran en el lado derecho de la distribución.

```
SELECT skewness(col) FROM VALUES (-10), (-20), (100), (1000) AS tab(col);
 1.1135657469022011
```

La siguiente consulta calcula la asimetría de los valores de la columna col. Al igual que en el ejemplo anterior, la `VALUES` cláusula se usa para crear una tabla en línea con cuatro filas, donde cada fila tiene una sola columna `col` con los valores -1000, -100, 10 y 20. A continuación, la `skewness()` función se utiliza para calcular la asimetría de los valores de la columna. `col` El resultado, -1.1135657469022011, representa el grado y la dirección de la asimetría en los datos. En este caso, el valor de asimetría negativo indica que los datos están sesgados hacia la izquierda y que la mayoría de los valores se concentran en el lado derecho de la distribución.

```
SELECT skewness(col) FROM VALUES (-1000), (-100), (10), (20) AS tab(col);
 -1.1135657469022011
```

# Funciones STDDEV\$1SAMP y STDDEV\$1POP
<a name="STDDEV_functions"></a>

 Las funciones STDDEV\$1SAMP y STDDEV\$1POP devuelven la muestra y la desviación estándar de población de un conjunto de valores numéricos (entero, decimal o de punto flotante). El resultado de la función STDDEV\$1SAMP es equivalente a la raíz cuadrada de la varianza de muestra del mismo conjunto de valores. 

STDDEV\$1SAMP y STDDEV son sinónimos para la misma función. 

## Sintaxis
<a name="STDDEV_functions-syntax"></a>

```
STDDEV_SAMP | STDDEV ( [ DISTINCT | ALL ] expression) STDDEV_POP ( [ DISTINCT | ALL ] expression)
```

La expresión debe tener un tipo de datos numérico. Independientemente del tipo de datos de la expresión, el tipo de retorno de esta función es un número de doble precisión. 

**nota**  
La desviación estándar se calcula utilizando aritmética de punto flotante, que puede dar como resultado una leve imprecisión.

## Notas de uso
<a name="STDDEV_usage_notes"></a>

Cuando la desviación estándar de la muestra (STDDEV o STDDEV\$1SAMP) se calcula para una expresión que consta de un valor único, el resultado de la función es NULL no 0. 

## Ejemplos
<a name="STDDEV_functions-examples"></a>

La siguiente consulta devuelve el promedio de valores en la columna VENUESEATS de la tabla VENUE, seguido de la desviación estándar de la muestra y la desviación estándar de la población del mismo conjunto de valores. VENUESEATS es una columna INTEGER. La escala del resultado se reduce a 2 dígitos. 

```
select avg(venueseats),
cast(stddev_samp(venueseats) as dec(14,2)) stddevsamp,
cast(stddev_pop(venueseats) as dec(14,2)) stddevpop
from venue;

avg  | stddevsamp | stddevpop
-------+------------+-----------
17503 |   27847.76 |  27773.20
(1 row)
```

La siguiente consulta devuelve la desviación estándar de muestra para la columna COMMISSION en la tabla SALES. COMMISSION es una columna DECIMAL. La escala del resultado se reduce a 10 dígitos. 

```
select cast(stddev(commission) as dec(18,10))
from sales;

stddev
----------------
130.3912659086
(1 row)
```

La siguiente consulta convierte la desviación estándar de muestra para la columna COMMISSION en un número entero. 

```
select cast(stddev(commission) as integer)
from sales;

stddev
--------
130
(1 row)
```

La siguiente consulta devuelve tanto la desviación estándar de muestra y la raíz cuadrada de la varianza de muestra para la columna COMMISSION. Los resultados de estos cálculos son semejantes. 

```
select
cast(stddev_samp(commission) as dec(18,10)) stddevsamp,
cast(sqrt(var_samp(commission)) as dec(18,10)) sqrtvarsamp
from sales;

stddevsamp   |  sqrtvarsamp
----------------+----------------
130.3912659086 | 130.3912659086
(1 row)
```

# Funciones SUM y SUM DISTINCT
<a name="sum-function"></a>

La función SUM devuelve la suma de la columna de entrada o valores de la expresión. La función SUM funciona con valores numéricos e ignora los valores NULL. 

La función SUM DISTINCT elimina todos los valores duplicados de la expresión especificada antes de calcular la suma.

## Sintaxis
<a name="sum-function-syntax"></a>

```
SUM (DISTINCT column )
```

## Argumentos
<a name="sum-function-arguments"></a>

*column*  
La columna de destino sobre la que opera la función. La columna es cualquier tipo de datos numéricos.

## Ejemplos
<a name="sum-function-examples"></a>

Encontrar la suma de todas las comisiones pagadas de la tabla SALES:

```
select sum(commission) from sales
```

Encontrar la suma de todas las comisiones diferenciadas pagadas de la tabla SALES:

```
select sum (distinct (commission)) from sales
```

# Funciones VAR\$1SAMP y VAR\$1POP
<a name="VARIANCE_functions"></a>

 Las funciones VAR\$1SAMP y VAR\$1POP devuelven la muestra y la varianza de población de un conjunto de valores numéricos (entero, decimal o de punto flotante). El resultado de la función VAR\$1SAMP es equivalente a la desviación cuadrada estándar de la muestra del mismo conjunto de valores. 

VAR\$1SAMP y VARIANCE son sinónimos para la misma función. 

## Sintaxis
<a name="VARIANCE_functions-syntax"></a>

```
VAR_SAMP | VARIANCE ( [ DISTINCT | ALL ] expression)
VAR_POP ( [ DISTINCT | ALL ] expression)
```

La expresión debe ser un tipo de datos entero, decimal o de punto flotante. Independientemente del tipo de datos de la expresión, el tipo de retorno de esta función es un número de doble precisión. 

**nota**  
Los resultados de estas funciones pueden variar entre clústeres de data warehouse, según la configuración del clúster en cada caso. 

## Notas de uso
<a name="VARIANCE_usage_notes"></a>

Cuando la varianza de la muestra (VARIANCE o VAR\$1SAMP) se calcula para una expresión que consta de un valor único, el resultado de la función es NULL no 0. 

## Ejemplos
<a name="VARIANCE_functions-examples"></a>

La siguiente consulta devuelve la varianza redondeada de muestra y población de la columna NUMTICKETS en la tabla LISTING. 

```
select avg(numtickets),
round(var_samp(numtickets)) varsamp,
round(var_pop(numtickets)) varpop
from listing;

avg | varsamp | varpop
-----+---------+--------
10 |      54 |     54
(1 row)
```

La siguiente consulta ejecuta los mismos cálculos pero convierte los resultados a valores decimales. 

```
select avg(numtickets),
cast(var_samp(numtickets) as dec(10,4)) varsamp,
cast(var_pop(numtickets) as dec(10,4)) varpop
from listing;

avg | varsamp | varpop
-----+---------+---------
10 | 53.6291 | 53.6288
(1 row)
```