Syntaks av hvilken som helst_valuefunksjon
Følgende er syntaks for å bruke hvilken som helst_value -funksjonen i Amazon Redshift:
Any_value ([distinkt | alle] uttrykk)Følgende er beskrivelsen av parametrene og alternativene som er gitt til Redshift Any_Value -funksjonen:
Distinkt | ALLEMens du utfører any_value -funksjonen, spesifiser enten distinkt eller alt for å få en tilfeldig utgang fra inngangsuttrykkene. Når vi spesifiserer DISTINKT nøkkelord, vil any_value -funksjonen fjerne duplikatverdier fra inngangsuttrykket og deretter returnere den tilfeldige verdien fra disse unike uttrykkene.
På den annen side, hvis ALLE Nøkkelord brukes, Any_Value -funksjonen vil returnere det tilfeldige uttrykket fra alle inngangsuttrykkene.
Uttrykk
Det er målkolonnen eller uttrykket som any_value -funksjonen fungerer på og får en verdi tilfeldig. Den kan inneholde dataene fra følgende datatyper:
Eksempler på hvilken som helst_valuefunksjon
Denne delen av artikkelen inneholder forskjellige eksempler på Redshift Any_Value -funksjonen for å utdype den grundig.
Sette opp miljøet
Før vi går sammen med forskjellige eksempler, må vi lage en tabell med forskjellige kolonner. Følgende spørsmål kan opprette en tabell i Redshift -klyngen med følgende attributter:
Nå vil vi sette inn noen eksempeldata i bruker_data -tabellen i Redshift Cluster. Bruk Sett inn spørringen for å legge til dataene ved å bruke følgende spørring:
Sett inn i user_data (Kjør denne spørringen flere ganger ved å endre verdiene for å lagre dataene til flere brukere. Nå vil vi bruke any_value -funksjonen på denne tabellen.
Etter å ha satt inn dataene til flere brukere, bruk følgende spørsmål til å liste opp alle dataene:
Velg * fra User_Data;Bruke hvilken som helst_value på heltalldatatype
I denne delen vil vi bruke hvilken som helst_value på heltalldatatypen eller Ansatt ID Kolonne av brukerdata Tabell vi opprettet i forrige seksjon.
For dette formålet kan følgende spørring brukes til å få ansattes ID for enhver ansatt:
Velg Any_Value (Employee_id) som Ansatt_id fra User_Data;Den forrige spørringen vil velge hvilken som helst verdi fra Ansatt ID og vil returnere som en utdata av denne spørringen. Den forrige figuren returnerte ansattes_id for den tilfeldige brukeren fra brukerdata bord.
Bruke hvilken som helst_value på strengdatatype
Akkurat som om vi brukte any_value -funksjonen på heltalldatatypen, kan den også brukes på strengdatatypen. Når den brukes på strengdatatypen, velger Any_Value -funksjonen tilfeldig noen av dataene og returnerer den som svar.
For å få noen tilfeldig verdi fra Brukernavn (Streng) Felt, utfør følgende spørsmål på Redshift -klyngen:
Velg Any_Value (brukernavn) som brukernavn fra user_data;Det vil returnere en tilfeldig Brukernavn inngang fra brukerdata bord.
Bruke hvilken som helst_value på datatype
Vi kan også få en tilfeldig verdi fra feltet som inneholder flere oppføringer av datatype. Når noen_value -funksjonen brukes på flere verdier av datatypen, velger den tilfeldig en oppføring og returnerer den som svar.
Å få en fødselsdato av en tilfeldig bruker fra brukerdata Tabell, utfør følgende spørsmål i Redshift -klyngen:
Velg Any_Value (date_of_birth) som date_of_birth fra user_data;Denne spørringen vil få en tilfeldig fødselsdato fra bordet og returner det som svar.
Any_value -funksjon ved å bruke gruppe
Vi kan bruke hvilken som helst_value -funksjon for å forenkle og optimalisere GRUPPE AV uttalelser fremgang. Et vanlig spørsmål som oppstår med mange spørsmål er konsekvensen av spørsmål med en klausul av gruppen ved det kan bestå av bare uttrykk som brukes i gruppen av gruppen med eller en konsekvens av samlet funksjon.
Velg kunde.id, kunde.Navn, sum (bestillinger.verdi)I det forrige spørringsattributtet krever kundenavnet å være i gruppen etter klausul for involvering innenfor konsekvensen. Dette er uønsket og gjør beregningen komplisert og treg.
For å forbedre spørringen og gjøre det raskere å utføre, kan du implementere den forrige spørringen ved å bruke any_value -funksjonen.
Velg kunde.id, any_value (kunde.Navn), sum (bestillinger.verdi)Konklusjon
Any_value er en funksjon som tar flere verdier som input og returnerer en tilfeldig verdi fra disse inngangsverdiene. Den velger utgangen fra inngangsuttrykkene på en nondeterministisk måte. Hvis inngangsuttrykket til any_value -funksjonen ikke resulterer i noen rad, vil funksjonens utgang være en nullverdi. Denne bloggen beskriver de forskjellige brukssakene for å implementere hvilken som helst_value -funksjon for å få den tilfeldige utdata.