Redshift Any_Value Función

Redshift Any_Value Función
Desplazamiento al rojo ALGÚN VALOR es una función que devuelve cualquier valor de los valores de la expresión de entrada de una manera no determinista. Toma múltiples valores como entrada, selecciona aleatoriamente cualquiera de estos valores y los devuelve en respuesta. Si pasa los valores nulos a la función Any_Value, devuelve un valor nulo en respuesta. En este blog, discutiremos diferentes casos de uso utilizando la función Any_Value para obtener una salida aleatoria de las tablas.

Sintaxis de cualquier función

La siguiente es la sintaxis para usar la función Any_Value en Amazon Redshift:

Any_value ([distintivo | all] expresión)

La siguiente es la descripción de los parámetros y opciones pasadas a la función RedShift Any_Value:

Distinto | TODO

Mientras ejecuta la función Any_Value, especifique que sea distinto o todo para obtener una salida aleatoria de las expresiones de entrada. Cuando especificamos el DISTINTO Palabra clave, la función Any_Value eliminará los valores duplicados de la expresión de entrada y luego devolverá el valor aleatorio de estas expresiones únicas.

Por otro lado, si el TODO Se utiliza la palabra clave, la función any_value devolverá la expresión aleatoria de todas las expresiones de entrada.

Expresión

Es la columna o expresión de destino en la que funciona la función Any_Value y obtiene un valor al azar. Puede contener los datos de los siguientes tipos de datos:

  1. PRECISIÓN DOBLE
  2. REAL
  3. Timetz
  4. GEOGRAFÍA
  5. DECIMAL
  6. Hllsketch
  7. GEOMETRÍA
  8. ENTERO
  9. Pequeño
  10. Marca de tiempo
  11. Varar
  12. Timestamptz
  13. EMPEZANDO
  14. SÚPER
  15. Varbyte
  16. Booleano
  17. TIEMPO
  18. CARBONIZARSE
  19. FECHA

Ejemplos de la función Any_Value

Esta sección del artículo incluye diferentes ejemplos de la función Redshift Any_Value para elaborarlo a fondo.

Configuración del medio ambiente

Antes de ir junto con diferentes ejemplos, necesitamos crear una tabla con diferentes columnas. La siguiente consulta puede crear una tabla en el clúster de cambio rojo con los siguientes atributos:

  • nombre de usuario
  • ID de empleado
  • contraseña
  • ciudad
  • fecha de nacimiento
Crear tabla user_data (
Empleado_id Integer Clave principal,
Nombre de usuario Varchar (200),
Contraseña Varchar (200),
City Varchar (200),
date_of_birth fecha
)

Ahora, insertaremos algunos datos de muestra en la tabla user_data del clúster de desplazamiento rojo. Use la consulta de inserción para agregar los datos utilizando la siguiente consulta:

Insertar en user_data (
ID de empleado,
nombre de usuario,
contraseña,
ciudad,
fecha de nacimiento
) VALORES (
1,
'Usuario-1',
'Pass-1',
'Ciudad-1',
'1997-02-27'
)

Ejecute esta consulta varias veces cambiando los valores para guardar los datos de varios usuarios. Ahora, aplicaremos la función Any_Value a esta tabla.

Después de insertar los datos de varios usuarios, use la siguiente consulta para enumerar todos los datos:

Seleccionar * de user_data;

Aplicando Any_Value en el tipo de datos enteros

En esta sección, aplicaremos el tipo de datos enteros o el tipo de datos de entero o el ID de empleado columna del datos del usuario tabla que creamos en la sección anterior.

Para este propósito, la siguiente consulta se puede utilizar para obtener la identificación del empleado de cualquier empleado:

Seleccione Any_Value (Employee_ID) como Employee_ID de USER_DATA;

La consulta anterior seleccionará cualquier valor del ID de empleado columna y volverá como una salida de esta consulta. La cifra anterior devolvió el empleado_id del usuario aleatorio del datos del usuario mesa.

Aplicando Any_Value en el tipo de datos de cadena

Al igual que aplicamos la función Any_Value en el tipo de datos enteros, también se puede aplicar al tipo de datos de cadena. Cuando se aplica al campo Tipo de datos de cadena, la función Any_Value selecciona aleatoriamente cualquiera de los datos y lo devuelve en respuesta.

Para obtener cualquier valor aleatorio del nombre de usuario (String) campo, ejecute la siguiente consulta en el clúster de desplazamiento rojo:

Seleccione Any_Value (Nombre de usuario) como nombre de usuario de User_Data;

Devolverá un azar nombre de usuario entrada desde el datos del usuario mesa.

Aplicando Tipo de datos de Fecha de Fecha de Any_Value

También podemos obtener un valor aleatorio del campo que contiene múltiples entradas del tipo de datos de fecha. Cuando la función Any_Value se aplica a los valores múltiples del tipo de datos de fecha, selecciona aleatoriamente una entrada y la devuelve en respuesta.

Conseguir un fecha de nacimiento de un usuario aleatorio del datos del usuario tabla, ejecute la siguiente consulta en el clúster de desplazamiento rojo:

Seleccione Any_Value (date_of_birth) como date_of_birth de user_data;

Esta consulta obtendrá un azar fecha de nacimiento de la tabla y devuélvalo en respuesta.

Any_Value Función utilizando el grupo

Podemos usar la función Any_Value para simplificar y optimizar AGRUPAR POR Declaraciones Progreso. Un problema común que ocurre con muchas consultas es la consecuencia de las consultas con una cláusula de grupo por el que puede consistir en expresiones utilizadas en la cláusula de grupo o una consecuencia de la función agregada.

Seleccionar cliente.ID, cliente.nombre, suma (pedidos.valor)
Del cliente
Unirse a los pedidos del cliente.ID = órdenes.Identificación del cliente
Grupo por cliente.ID, cliente.nombre;

En el atributo de consulta anterior, el nombre del cliente requiere estar en el grupo por cláusula para su participación dentro de la consecuencia. Esto no es deseado y hace que el cálculo sea complicado y lento.

Para mejorar la consulta y hacer que sea más rápido de ejecutar, puede implementar la consulta anterior utilizando la función Any_Value.

Seleccionar cliente.id, any_value (cliente.nombre), suma (pedidos.valor)
Del cliente
Unirse a los pedidos del cliente.ID = órdenes.Identificación del cliente
Grupo por cliente.identificación;

Conclusión

Any_value es una función que toma múltiples valores como entrada y devuelve un valor aleatorio de estos valores de entrada. Selecciona la salida de las expresiones de entrada de manera no determinista. Si la expresión de entrada a la función any_value no da como resultado ninguna fila, la salida de la función será un valor nulo. Este blog describe los diferentes casos de uso para implementar la función Any_Value para obtener la salida aleatoria.