Redshift Any_value Função

Redshift Any_value Função
Desvio para o vermelho QUALQUER VALOR é uma função que retorna qualquer valor dos valores da expressão de entrada de maneira não determinística. São necessários vários valores como entrada, seleciona aleatoriamente qualquer um desses valores e os retorna em resposta. Se você passar valores nulos para a função Any_Value, ele retornará um valor nulo em resposta. Neste blog, discutiremos diferentes casos de uso usando a função Any_Value para obter saída aleatória das tabelas.

Sintaxe da função de qualquer_value

A seguir, a sintaxe para usar a função Any_Value no Amazon Redshift:

Any_value ([Distinct | All] Expressão)

A seguir, a descrição dos parâmetros e opções passadas para a função Redshift Any_value:

Distinto | TODOS

Ao executar a função Any_Value, especifique distintos ou tudo para obter uma saída aleatória das expressões de entrada. Quando especificamos o Distinto palavra -chave, a função any_value removerá valores duplicados da expressão de entrada e depois retornará o valor aleatório dessas expressões exclusivas.

Por outro lado, se o TODOS Palavra -chave é usada, a função Any_Value retornará a expressão aleatória de todas as expressões de entrada.

Expressão

É a coluna de destino ou expressão na qual a função Any_value opera e recebe um valor aleatoriamente. Ele pode conter os dados dos seguintes tipos de dados:

  1. DUPLA PRECISÃO
  2. REAL
  3. Timetz
  4. GEOGRAFIA
  5. DECIMAL
  6. Hllsketch
  7. GEOMETRIA
  8. Inteiro
  9. Smallint
  10. Timestamp
  11. Varchar
  12. Timestamptz
  13. Bigint
  14. SUPER
  15. Varbyte
  16. BOLEANO
  17. TEMPO
  18. CARACTERES
  19. DATA

Exemplos de qualquer função de qualquer_value

Esta seção do artigo inclui diferentes exemplos da função Redshift Any_value para elaborá -lo completamente.

Configurando o ambiente

Antes de acompanhar exemplos diferentes, precisamos criar uma tabela com colunas diferentes. A consulta a seguir pode criar uma tabela no cluster do desvio para o vermelho com os seguintes atributos:

  • nome de usuário
  • ID do Empregado
  • senha
  • cidade
  • data de nascimento
Crie a tabela user_data (
Chave primária inteira,
nome de usuário Varchar (200),
Senha Varchar (200),
City Varchar (200),
DATE_OF_Birth Data
)

Agora, inseriremos alguns dados de amostra na tabela user_data do cluster de desvio para o vermelho. Use a consulta Insert para adicionar os dados usando a seguinte consulta:

Insira em user_data (
ID do Empregado,
nome de usuário,
senha,
cidade,
data de nascimento
) Valores (
1,
'User-1',
'Pass-1',
'City-1',
'1997-02-27'
)

Execute esta consulta várias vezes alterando os valores para salvar os dados de vários usuários. Agora, aplicaremos a função any_value a esta tabela.

Depois de inserir os dados de vários usuários, use a seguinte consulta para listar todos os dados:

Selecione * de user_data;

Aplicando qualquer_value no tipo de dados inteiro

Nesta seção, aplicaremos o qualquer_Value no tipo de dados inteiro ou no ID do Empregado coluna do dados do usuário Tabela que criamos na seção anterior.

Para esse fim, a consulta a seguir pode ser usada para obter o ID do funcionário de qualquer funcionário:

Selecione Any_Value (funcionário_id) como funcionário_id de user_data;

A consulta anterior selecionará qualquer valor do ID do Empregado coluna e retornará como uma saída desta consulta. A figura anterior retornou o funcionário_id do usuário aleatório do dados do usuário mesa.

Aplicando qualquer_value no tipo de dados da string

Assim como aplicamos a função Any_Value no tipo de dados inteiro, ele também pode ser aplicado ao tipo de dados da string. Quando aplicado ao campo Tipo de dados da string, a função Any_Value seleciona aleatoriamente qualquer um dos dados e o retorna em resposta.

Para obter qualquer valor aleatório do nome de usuário (String) Campo, execute a seguinte consulta no cluster do Redshift:

Selecione Any_Value (nome de usuário) como nome de usuário do user_data;

Vai retornar um aleatório nome de usuário entrada do dados do usuário mesa.

Aplicando qualquer_value no tipo de dados de data

Também podemos obter um valor aleatório do campo que contém várias entradas de data de data do tipo de dados. Quando a função any_value é aplicada aos múltiplos valores do tipo de dados de data, seleciona aleatoriamente uma entrada e a retorna em resposta.

Para obter um data de nascimento de um usuário aleatório do dados do usuário Tabela, execute a seguinte consulta no cluster do desvio para o vermelho:

Selecione Any_Value (date_of_birth) como date_of_birth de user_data;

Esta consulta terá um aleatório data de nascimento da mesa e devolvê -la em resposta.

Any_value Função usando o grupo

Podemos usar a função de qualquer_value para simplificar e otimizar Grupo por Declarações Progresso. Uma questão comum que ocorre com muitas consultas é a conseqüência de consultas com uma cláusula de grupo que pode consistir em apenas expressões utilizadas na cláusula de grupo ou uma conseqüência da função agregada.

Selecione Cliente.id, cliente.nome, soma (pedidos.valor)
Do cliente
Junte -se aos pedidos no cliente.id = ordens.Identificação do Cliente
Grupo por cliente.id, cliente.nome;

No atributo de consulta anterior, o nome do cliente exige estar no grupo por cláusula para envolvimento dentro da consequência. Isso é indesejado e torna o cálculo complicado e lento.

Para melhorar a consulta e torná -lo mais rápido, você pode implementar a consulta anterior usando a função Any_value.

Selecione Cliente.id, qualquer_value (cliente.nome), soma (pedidos.valor)
Do cliente
Junte -se aos pedidos no cliente.id = ordens.Identificação do Cliente
Grupo por cliente.eu ia;

Conclusão

Any_value é uma função que leva vários valores como entrada e retorna um valor aleatório desses valores de entrada. Ele seleciona a saída das expressões de entrada de maneira não -determinística. Se a expressão de entrada para a função Any_Value não resultar em nenhuma linha, a saída da função será um valor nulo. Este blog descreve os diferentes casos de uso para implementar a função Any_Value para obter a saída aleatória.