Funzione RedShift Any_Value

Funzione RedShift Any_Value
Spostamento verso il rosso Any_value è una funzione che restituisce qualsiasi valore dai valori dell'espressione di input in modo non deterministico. Prende più valori come input, seleziona casualmente uno di questi valori e li restituisce in risposta. Se si passa i valori null alla funzione Any_Value, restituisce un valore nullo in risposta. In questo blog, discuteremo di diversi casi d'uso utilizzando la funzione Any_Value per ottenere output casuale dalle tabelle.

Sintassi di qualsiasi funzione

Di seguito è riportata la sintassi per utilizzare la funzione Any_Value in Amazon Redshift:

Any_Value ([distinto | all] espressione)

Di seguito è riportata la descrizione dei parametri e delle opzioni passate alla funzione Redshift Any_Value:

Distinto | TUTTO

Durante l'esecuzione della funzione Any_Value, specificare distinti o tutti per ottenere un output casuale dalle espressioni di input. Quando specifichiamo il Distinto Parola chiave, la funzione Any_Value rimuoverà i valori duplicati dall'espressione di input e quindi restituirà il valore casuale da queste espressioni uniche.

D'altra parte, se il TUTTO Viene utilizzato la parola chiave, la funzione Any_Value restituirà l'espressione casuale da tutte le espressioni di input.

Espressione

È la colonna o l'espressione di destinazione su cui opera la funzione Any_Value e ottiene un valore in modo casuale. Può contenere i dati dei seguenti tipi di dati:

  1. DOPPIA PRECISIONE
  2. VERO
  3. Timetz
  4. GEOGRAFIA
  5. DECIMALE
  6. Hllsketch
  7. GEOMETRIA
  8. NUMERO INTERO
  9. Piccolo
  10. Timestamp
  11. Varchar
  12. Timestamptz
  13. Bigint
  14. SUPER
  15. Varbyte
  16. Booleano
  17. TEMPO
  18. CHAR
  19. DATA

Esempi di funzione Any_Value

Questa sezione dell'articolo include diversi esempi della funzione Redshift Any_Value per elaborarla a fondo.

Impostazione dell'ambiente

Prima di seguire diversi esempi, dobbiamo creare una tabella con colonne diverse. La seguente query può creare una tabella nel cluster Redshift con i seguenti attributi:

  • nome utente
  • ID Dipendente
  • parola d'ordine
  • città
  • data di nascita
Crea table utente_data (
Chiave primaria di Employee_ID Integer,
Nome utente Varchar (200),
Password Varchar (200),
City Varchar (200),
data_of_birth Data
)

Ora inseriremo alcuni dati di esempio nella tabella user_data del cluster RedShift. Utilizzare la query Inserisci per aggiungere i dati utilizzando la seguente query:

Inserire in user_data (
ID Dipendente,
nome utente,
parola d'ordine,
città,
data di nascita
) VALORI (
1,
'User-1',
'Pass-1',
'Città-1',
'1997-02-27'
)

Esegui questa query più volte modificando i valori per salvare i dati di più utenti. Ora applicheremo la funzione Any_Value a questa tabella.

Dopo aver inserito i dati di più utenti, utilizzare la seguente query per elencare tutti i dati:

Seleziona * da user_data;

Applicazione di Any_Value sul tipo di dati interi

In questa sezione, applicheremo Any_Value sul tipo di dati interi o sul ID Dipendente colonna del dati utente Tabella che abbiamo creato nella sezione precedente.

A tale scopo, la seguente query può essere utilizzata per ottenere l'ID dipendente di qualsiasi dipendente:

Seleziona Any_Value (Employee_id) come Employee_id da User_Data;

La query precedente selezionerà qualsiasi valore da ID Dipendente colonna e tornerà come output di questa query. La figura precedente ha restituito il dipendente dell'utente casuale da dati utente tavolo.

Applicazione di Any_Value sul tipo di dati stringa

Proprio come abbiamo applicato la funzione Any_Value sul tipo di dati interi, può anche essere applicato al tipo di dati stringa. Se applicato al campo Tipo di dati String, la funzione Any_Value seleziona casualmente uno qualsiasi dei dati e lo restituisce in risposta.

Al fine di ottenere qualsiasi valore casuale da nome utente (Stringa) campo, eseguire la seguente query sul cluster di spostamento verso il rosso:

Seleziona Any_Value (nome utente) come nome utente da user_data;

Restituirà un casuale nome utente ingresso dal dati utente tavolo.

Applicazione di qualsiasi_value sul tipo di dati della data

Possiamo anche ottenere un valore casuale dal campo che contiene più voci del tipo di dati della data. Quando la funzione Any_Value viene applicata ai valori multipli del tipo di dati della data, seleziona casualmente una voce e la restituisce in risposta.

Prendere un data di nascita di un utente casuale da dati utente Tabella, eseguire la seguente query nel cluster Redshift:

Seleziona Any_Value (date_of_birth) come date_of_birth da user_data;

Questa query riceverà un casuale data di nascita dalla tabella e restituirlo in risposta.

Any_Value Function utilizzando il gruppo

Possiamo usare la funzione Any_Value per semplificare e ottimizzare RAGGRUPPA PER Dichiarazioni Progressi. Un problema comune che si verifica con molte domande è la conseguenza delle domande con una clausola di gruppo da parte di ciò che può consistere in semplici espressioni utilizzate nella clausola del gruppo o una conseguenza della funzione aggregata.

Seleziona il cliente.id, cliente.nome, somma (ordini.valore)
Dal cliente
Unisciti agli ordini sul cliente.id = ordini.identificativo del cliente
Gruppo per cliente.id, cliente.nome;

Nell'attributo di query precedente, il nome del cliente richiede di essere nel gruppo per clausola per il coinvolgimento entro la conseguenza. Questo è indesiderato e rende il calcolo complicato e lento.

Al fine di migliorare la query e rendere più veloce l'esecuzione, è possibile implementare la query precedente utilizzando la funzione Any_Value.

Seleziona il cliente.id, any_value (cliente.nome), somma (ordini.valore)
Dal cliente
Unisciti agli ordini sul cliente.id = ordini.identificativo del cliente
Gruppo per cliente.id;

Conclusione

Any_value è una funzione che prende più valori come input e restituisce un valore casuale da questi valori di input. Seleziona l'output dalle espressioni di input in modo non determinante. Se l'espressione di input per la funzione Any_Value non si traduce in alcuna riga, l'output della funzione sarà un valore nullo. Questo blog descrive i diversi casi d'uso per implementare la funzione Any_Value per ottenere l'output casuale.