Funzione ANY_VALUE - Amazon Redshift

Amazon Redshift non supporterà più la creazione di nuove UDF Python a partire dal 1º novembre 2025. Se desideri utilizzare le UDF Python, creale prima di tale data. Le UDF Python esistenti continueranno a funzionare normalmente. Per ulteriori informazioni, consulta il post del blog.

Funzione ANY_VALUE

La funzione ANY_VALUE restituisce qualsiasi valore dai valori dell'espressione di input in modo non deterministico. Questa funzione restituisce NULL se l'espressione di input non determina la restituzione di righe. La funzione può restituire NULL anche se sono presenti valori NULL nell'espressione di input. Se l’input contiene valori NULL combinati con valori non NULL, potrebbe venire restituito NULL. Se tutti i valori sono NULL, viene restituito NULL. Se nessuna riga corrisponde alla condizione, viene restituito NULL.

Sintassi

ANY_VALUE( [ DISTINCT | ALL ] expression )

Argomenti

DISTINCT | ALL

Specificare DISTINCT o ALL per restituire qualsiasi valore dai valori dell'espressione di input. L'argomento DISTINCT non ha alcun effetto e viene ignorato.

Espressione

L'espressione o la colonna di destinazione su cui viene eseguita la funzione. L'espressione è uno dei seguenti tipi di dati:

  • SMALLINT

  • INTEGER

  • BIGINT

  • DECIMAL

  • REAL

  • DOUBLE PRECISON

  • BOOLEAN

  • CHAR

  • VARCHAR

  • DATE

  • TIMESTAMP

  • TIMESTAMPTZ

  • TIME

  • TIMETZ

  • INTERVAL YEAR TO MONTH

  • INTERVAL DAY TO SECOND

  • VARBYTE

  • SUPER

  • HLLSKETCH

  • GEOMETRY

  • GEOGRAPHY

Valori restituiti

Restituisce lo stesso tipo di dati come espressione.

Note per l’utilizzo

Se un'istruzione che specifica la funzione ANY_VALUE per una colonna include anche un riferimento a una secondo colonna, la seconda colonna deve essere visualizzata in una clausola GROUP BY o inclusa in una funzione di aggregazione.

Esempi

Gli esempi utilizzano la tabella di eventi creata in Fase 4: Caricamento dei dati campione da Amazon S3 nella Guida alle operazioni di base di Amazon Redshift. Nell'esempio seguente viene restituita un'istanza di qualsiasi dateid in cui il nome evento è Eagles.

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

Di seguito sono riportati i risultati.

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

Nell'esempio seguente viene restituita un'istanza di qualsiasi dateid in cui il nome evento è Eagles o Cold War Kids.

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

Di seguito sono riportati i risultati.

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