Advanced SQL spørringer Tutorial

Advanced SQL spørringer Tutorial


Blant de mer avanserte funksjonene i SQL er Grupper etter klausuler, Aggregate funksjoner, Fagforeninger og subqueries. Har bruken av disse funksjonene til din disposisjon kan ikke bare gjøre koden mer effektiv, kan det gi helt ny innsikt i dine data.

Bruksanvisning

1 Lag noen eksempler på data. Nedenfor er data fra en imaginær fugletitting samfunnet, en enkelt tabell som inneholder antall observasjoner av hver art av fugl sett i hver region. Den grunnleggende spørring for å vise dataene i denne tabellen er "SELECT ARTER, OBSERVASJONER, REGION FRA BIRDSIGHTINGS" som ville gi et resultat sett som ser slik ut:

ARTER OBSERVASJONER REGION
Blå jay 121 North
Wren 72 West
Snipe 0 Nord
Gul-shafted Flicker 15 West
Gul-shafted Flicker 11 North
Whippoorwill 7 South
Wren 15 South
Nuthatch 77 North
Oriole 9 North
Snipe 0 Sør
Robin 178 East
Oriole 19 East
Robin 159 North
Mourning Dove 19 South

Dataene vises i tilfeldig rekkefølge. En måte å ordne det på er å bruke et GROUP BY-ledd.

2 Se tabellen med et GROUP BY-ledd ved å kjøre denne spørring mot tabellen:

SELECT ARTER, OBSERVASJONER, REGION
Fra BIRDSIGHTINGS
GROUP etter region, arter, OBSERVASJONER

Dette søket viser data arrangert av regionen siden "REGION" er først i Grupper etter-listen. (Der det ikke finnes en samlefunksjon, insisterer SQL du gruppen av hver og en av kolonnene som angir i hvilken rekkefølge for å bruke gruppering.)

3 Gruppere dataene etter art med følgende spørring:

SELECT ARTER, OBSERVASJONER, REGION
Fra BIRDSIGHTINGS
GROUP BY arter, REGION, OBSERVASJONER

4 Bruk en Aggregate funksjonen til å summere observasjoner i hver region. Kraften i Gruppe etter er ytterligere forsterket ved bruk av Aggregate funksjoner, som lar deg utføre matematiske funksjoner på grupper av data. For eksempel, for å vise det totale antallet fugl observasjoner i hver region, vil du bruke "SUMMER" -funksjonen sammen med Grupper etter klausul:

SELECT SUM (OBSERVASJONER), REGION
Fra BIRDSIGHTINGS
GROUP BY REGION

Bruk en Aggregate funksjonen til å summere observasjoner av hver art. Utfør dette søket:

SELECT SUM (OBSERVASJONER), ARTER
Fra BIRDSIGHTINGS
GROUP BY ARTER

5 Bruk en union til å smelte sammen resultatene av to spørringer, gitt at kolonne typer hver av dine spørsmål er identiske. Anta at i den samme databasen som fuglen sighting tabellen er det også et lignende bord å samle data om amfibier observasjoner. For å generere et resultatsett som inneholder data fra både søk, utføre følgende spørring:

SELECT ARTER, OBSERVASJONER, REGION FRA BIRDSIGHTINGS
UNION
SELECT ARTER, OBSERVASJONER, REGION FRA AMPHIBIANSIGHTINGS

6 Bruk IN-leddet for å begrense resultater mot en liste i stedet for en enkeltverdi. Tenk deg at du bare er interessert i Oriole befolkningen i nord og øst. Du kan bruke IN klausulen for å begrense resultatene:

SELECT ARTER, OBSERVASJONER, REGION
Fra BIRDSIGHTINGS
HVOR (REGION IN ( 'Øst', 'Nord')) AND (ARTER = 'Oriole')