Oracle , en ledende database applikasjon, har mange analytiske funksjoner som tillater utviklere å utføre oppgaver på en Structured Query Language , eller SQL, i motsetning til en prosessuell språk , som kommer med langt flere begrensninger . Eksempler på Oracle analytiske funksjoner inkluderer Avg, Count , Lag, Prosent Rank og varians . Funksjon
analytiske funksjoner kombinere en gruppe av rader å beregne en samlet verdi . Hver bestemt funksjon oppnår den bragden på en annen måte , men alle analytiske funksjoner gir en klar fordel over vanlige samlede oppgaver som de kan returnere flere rader for hver gruppe . Brukere vanligvis benytter analytiske funksjoner for å beregne slike ulike typer tilslag som kumulative, flytting, sentrert eller rapportering.
Egenskaper
Mens syntaksen for hver funksjon kan variere noe , den grunnleggende syntaks strukturen for et Oracle analytisk funksjon består av de samme tre komponenter: analytisk funksjon, argumenter og den analytiske årsaken . Syntaksen kan skrives som " analytic_function ([ argumenter ] ) OVER ( analytic_clause )" . Den analytisk funksjon kan innlemme mellom null og tre argumenter , med argumenter som består av noen numeriske data . Den analytiske klausul delen kan bestå av en spørring partisjon klausul , en ordre -by - klassen årsak eller en windowing klausul .
Typer
Hver av de tre analytiske klausuler i en analytisk funksjon utfører en spesiell oppgave. En spørring partisjon klausul deler resultatet satt inn i grupper av data , skille dataene i partisjoner . Denne funksjonen gjør det mulig for større tilpasning og mer effektiv organisering av data . Rekkefølgen av klausulen tar ting ett skritt videre , bestilling rader i en partisjon for enda mer presisjon. Endelig fungerer det windowing klausul som en forlengelse av rekkefølgen av klausulen , bestemme et bestemt utvalg av rader innenfra beordret partisjonen til å påvirke . En windowing klausul kan bare brukes hvis en ordre av klausulen er allerede til stede .
Hensyn
Når du skriver inn syntaksen for gitt analytisk funksjon , kan du legge visse vilkår for ytterligere å definere den resulterende data . For eksempel, ASC og DESC representerer " stigende " og " synkende ", henholdsvis når du angir en bestilling sekvens . Legge vilkårene nuller første eller nuller SISTE avgjør hvorvidt returnerte rader uten data skal vises først eller sist . Når du arbeider med en windowing klausulen, indikerer REKKER målrettet vinduet i fysiske enheter , mens RANGE angir vinduet som en logisk sett med rader . Du kan også definere et vindu utgangspunkt med gjeldende rad eller Unbounded FOREGÅENDE , som plasserer startpunktet på første rad på partisjonen . Begrepet Unbounded FØLGENDE angir vinduet ender på partisjonen endelige rad.