Mode Blog (Dansk)

Her på Mode lægger vi stor vægt på at skrive god, ren S .l. Som et samarbejdsteam er det vigtigt, at vores forespørgsler let kan læses og forstås af vores holdkammerater. En konvention, vi har vedtaget, er brugen af almindelige tabeludtryk (CTE ‘ er).

Hvad er almindelige tabeludtryk?

almindelige tabeludtryk er midlertidige navngivne resultatsæt, der findes for kun en forespørgsel. De begynder med en WITH , efterfulgt af et udtryk navn og en forespørgsel, der definerer resultatet sæt., Ved hjælp af denne konvention kan du definere flere udtryk i en forespørgsel. Når de er defineret, kan disse udtryk refereres gentagne gange i resten af din forespørgsel (ligesom du vil henvise til permanente databasetabeller eller visninger).,

Mens det fælles bord udtryk opererer på samme måde som underforespørgsler, de har flere fordele, herunder:

  • evnen til at henvise til det samme midlertidige resultat set flere gange på tværs af forespørgslen
  • Forbedret læsbarhed for samarbejde og debugging
  • Bedre synlighed i almindeligt anvendte resultat angiver, at der er gode kandidater til at blive faste borde/visninger

Et praktisk eksempel

Lad os tage et eksempel med brug af data i demo-skema af Mode Offentlige Lager, som indebærer en hypotetisk papir selskab., Antag, at du arbejder for dette firma, og du vil nå ud til store kunder, der har haft dårlige forsendelsesoplevelser. Når du har talt med salgsteamet, beslutter du at definere “store kunder” som enhver konto med $100k eller mere i levetidsindtægter, og du definerer dårlige forsendelsesoplevelser som enhver konto, der har haft flere ordrer med mislykkede forsendelser.

en strømlinet tilgang til identifikation af konti, der opfylder begge disse kriterier, er at bruge et fælles tabeludtryk, som i dette eksempel.,

Breaking it do .n

  • WITHITH: aWITH er nødvendigt for at starte din fælles tabeludtryksforespørgsel.
 WITH 
  • Udtryk 1: account_failed_shipments. Vores første udtryk Returnerer antallet af mislykkede forsendelser for alle konti, der har haft mindst en. Syntaktisk begynder vi med at navngive udtrykket i formatet expression_name as (. Vi kan nu henvise til dette navn, som om det var en tabel i vores database i resten af forespørgslen., Det følgende er en typisk forespørgsel, som i dette eksempel grupperer mislykkede forsendelser efter konto. Endelig konkluderer vi udtrykket med en lukket parentes. Bemærk, at da dette ikke er det sidste udtryk i vores forespørgsel, efterfølges den lukkede parentes af et komma.
  • Udtryk 2: account_lifetime_revenue. Vores andet udtryk returnerer den samlede omsætning efter konto. Det er identisk i struktur til udtryk 1, med en undtagelse— da det er det endelige udtryk i vores forespørgsel, efterfølges den lukkede parentes ikke af et komma.,
 account_lifetime_revenue as ( SELECT o.account_id, SUM(o.total_amt_usd) as amount FROM demo.orders o GROUP BY 1 )
  • endelig forespørgsel: endelig har vi den endelige forespørgsel Selv, der vil returnere vores resultatsæt. Dette skal se meget ud som enhver traditionel forespørgsel, med undtagelse af de sidste to slutter sig til de referenceudtryk, vi tidligere har defineret, i modsætning til tabeller i vores database.

almindelige tabeludtryk hjælper os med at arbejde mere effektivt

almindelige tabeludtryk er meget værdifuld metode til opdeling af komplekse forespørgsler, især når de involverer kombinationer af flere koncepter., Da hvert udtryk er tydeligt navngivet og defineret, er debugging meget lettere (især hvis du bruger highlight-to-run I tilstand).

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *