Almindelige SQL-tabeludtryk for LuckyTemplates-brugere

I denne blog vil vi diskutere nogle almindelige tabeludtryk, også kendt som CTE'er . Hvis du støder på komplekse problemer, kan brugen af ​​disse hjælpe dig.

Med CTE kan du opdele enhver opgave i små og håndterbare forespørgsler for at løse komplicerede problemer.

Lad os nu undersøge, hvordan CTE kan gøre dit arbejde mere effektivt i fejlfindingskoder.

Indholdsfortegnelse

Syntaks til oprettelse af almindelige SQL-tabeludtryk 

Først skal du skrive " WITH " efterfulgt af dit CTE-udtryksnavn efterfulgt af " AS ".

Almindelige SQL-tabeludtryk for LuckyTemplates-brugere

Derefter kan du angive eventuelle forespørgsler mellem parenteserne. Dette vil blive gemt i det angivne udtryksnavn, der vil fungere som en virtuel tabel.

Almindelige SQL-tabeludtryk for LuckyTemplates-brugere

Tilføj derefter aved hjælp af den virtuelle tabel, du har oprettet via det udtryksnavn, du har angivet.

Almindelige SQL-tabeludtryk for LuckyTemplates-brugere

For vores eksempel vil vi bruge " USACusts " til udtrykkets navn .

Almindelige SQL-tabeludtryk for LuckyTemplates-brugere

Og til forespørgslen bruger vi denne kode. 

Almindelige SQL-tabeludtryk for LuckyTemplates-brugere

Denne forespørgsel vil oprette en virtuel tabel. Det viser et samlet eller aggregeret beløb, der er grupperet efter kunde-id, hvor det land, de tilhører, er " USA ". Dataene vil blive udtrukket fra Sales.Customers -tabellen.

To kolonner vil være synlige, som er custid og Agg_Amount . Bemærk, at USACusts- tabellen ikke er en fysisk tabel , men kun en virtuel tabel. Det betyder, at den ikke vil være synlig i vores database.

Efter forespørgslen kan vi tilføje en

Almindelige SQL-tabeludtryk for LuckyTemplates-brugere

Denne erklæring vil vælge alle Agg_Amount , der er større end 1000 , fra USACusts- tabellen.

Flere almindelige SQL-tabeludtryk 

Flere CTE'er kan hjælpe dig med at løse komplekse fejl i din kode ved at opdele dem i mindre bidder. Derudover kan du definere så mange CTE'er , som du vil. Nedenfor er et eksempel på flere CTE'er .

Almindelige SQL-tabeludtryk for LuckyTemplates-brugere

For dette eksempel har vi den første CTE , som er C1 . Derfra valgte vi YEAR(orderdate) og oprettede 2 kolonner, som er ordreår og custid fra Sales.Orders-tabellen .

For den anden CTE ved navn C2 valgte vi ordreår og samlede antallet af custid ved hjælp af COUNT- kommandoen. Så kaldte vi det som numcusts fra C1 . En WHERE- betingelse blev også tilføjet i C2 for kun at vælge det ordreår , der er større end 2015 . Derefter grupperede vi dem efter ordreår .

Derefter valgte vi ordreår og numcust fra C2 . Derefter tilføjede vi en WHERE- betingelse for kun at vælge antallet af kunder, der er større end 500 .

For at opsummere bruges denne kode til at vælge kunder, hvor ordreåret er større end 2015 og kun vælge antallet af kunder, der er mere end 500 baseret på ordreårets tilstand.

Brug af flere CTE'er til at løse komplekse koder

Dernæst vil jeg demonstrere flere eksempler for yderligere at understrege brugen af ​​CTE'er til fejlfinding af et stort sæt data. Her er endnu et eksempel på flere CTE'er .

Almindelige SQL-tabeludtryk for LuckyTemplates-brugere

Bemærk venligst, at du kan navngive CTE'er, som du vil, men til denne blog bruger vi C1 , C2 , C3 og så videre for nemt at identificere og forstå, hvordan vi bruger dem i vores eksempler.

Går vi tilbage til eksemplet, oprettede vi C1 for kun at vælge de salg, hvor ordremængden er større end 5 fra tabellen Sales.SalesOrderDetails .

Almindelige SQL-tabeludtryk for LuckyTemplates-brugere

Derefter brugte vi i C2 de data, som vi gemte i C1 , til at forbinde produktet baseret på Product.ID og grupperede dem efter produktnavn (p.Name) og produktfarve (p.Color) .

Da vi har erklæret en betingelse i C1 , grupperer vi kun produktnavnet og produktfarven i C2 for ordrer, hvor ordremængden (OrdreAntal) er større end 5 .

Almindelige SQL-tabeludtryk for LuckyTemplates-brugere

Derefter bruger vi en kommando til at vælge alle data fra C2 med en ordremængde, der er større end 1000 .

Til fejlfindingsformål kan du blot vælge hver af de CTE'er , du har oprettet, for at kontrollere, om den viser de korrekte data. Se eksemplerne nedenfor.

Almindelige SQL-tabeludtryk for LuckyTemplates-brugere

For C1 viser den alle data fra tabellen Sales.SalesOrderDetail med en ordremængde, der er større end 5 .

Almindelige SQL-tabeludtryk for LuckyTemplates-brugere

Derefter viser C2 et output af ordremængden, der er grupperet efter produktnavn og farve fra C1 . I C2 kan vi se kolonnen ordremængde , men det har vi faktisk ikke i C2 , fordi det kun er en beregnet kolonne, som vi genererede fra C1 . Herfra kan vi så begynde at bruge en hvilken som helst betingelse i kolonnen ordremængde og udføre fejlfinding.

Så nu kan du se, hvordan flere CTE'er kan hjælpe os med at løse fejl i komplekse koder ved at gemme dem i CTE'er og begynde at fejlfinde uden at beskadige den faktiske kode.

Brug af CTE'er med Case Statement

Lad os have et andet eksempel med samme kontekst for at vise, hvordan vi kan bruge flere CTE'er til fejlfinding af komplekse koder. 

I dette tilfælde vil vi bruge en CASE- sætning, der vil oprette en produktkategorikolonne med resultater, der er baseret på den aggregerede mængde ordremængde fra C2 .

Almindelige SQL-tabeludtryk for LuckyTemplates-brugere

Som nævnt tidligere havde vi ikke ordremængde i den første CTE såvel som i produktkategorien , men vi brugte mellemtabeller til at beregne og udføre forskellige beregninger.

I det næste eksempel opretter vi et aggregeret beløb baseret på det, vi har oprettet i det forrige eksempel. Men for at gøre dette sætter vi CASE- sætningen for produktkategorien i den tredje CTE , som er C3 .

Almindelige SQL-tabeludtryk for LuckyTemplates-brugere

Inden vi fortsætter, lad os kontrollere outputtet fra C3 ved at tilføje " SELECT * FROM C3 " under C3 .

Almindelige SQL-tabeludtryk for LuckyTemplates-brugere

I C3 kan vi se kolonnerne Produktnavn , Farve , ordremængde og Produktkategori . Herfra kan vi begynde at aggregere baseret på produktkategorien . Lad os gøre dette ved at bruge følgende kommando under C3 .

Almindelige SQL-tabeludtryk for LuckyTemplates-brugere

Eksemplet nedenfor er resultatet efter oprettelse af et aggregeret beløb ved at bruge kommandoen ovenfor.

Almindelige SQL-tabeludtryk for LuckyTemplates-brugere

Oprindeligt havde vi ikke kolonnerne Produktkategori og ordremængde , men vi er i stand til at generere prøveoutput baseret på disse kolonner ved at bruge flere CTE'er .

På dette tidspunkt kan du se, at vi kan gøre alt ved hjælp af CTE'er i at arbejde med vores koder mere effektivt.



Konklusion

I denne øvelse har du lært den korrekte syntaks i at skabe almindelige SQL-tabeludtryk , og hvordan du bruger flere CTE'er til fejlfinding af komplekse koder ved at isolere små dele af data og gemme dem inde i en given CTE .

Ved at lære dette har du nu mulighed for at fejlsøge dine koder mere effektivt. Husk, at du kan bruge et hvilket som helst navn til CTE , og du kan ikke bruge eller kalde nogen CTE , medmindre det er oprettet. Når du først har stiftet bekendtskab med CTE , kan du betragte dig selv som en mellembruger af.

Hvis du gerne vil vide mere om dette emne og andet relateret indhold, kan du helt sikkert tjekke listen over relevante links nedenfor.

Alt det bedste,

Hafiz


Pipe In R: Tilslutningsfunktioner med Dplyr

Pipe In R: Tilslutningsfunktioner med Dplyr

I denne øvelse lærer du, hvordan du kæder funktioner sammen ved hjælp af dplyr-røroperatoren i programmeringssproget R.

RANKX Deep Dive: A Lucky Templates DAX-funktion

RANKX Deep Dive: A Lucky Templates DAX-funktion

RANKX fra LuckyTemplates giver dig mulighed for at returnere rangeringen af ​​et specifikt tal i hver tabelrække, der udgør en del af en liste over tal.

Udpakning af LuckyTemplates-temaer og -billeder fra PBIX

Udpakning af LuckyTemplates-temaer og -billeder fra PBIX

Lær, hvordan du adskiller en PBIX-fil for at udtrække LuckyTemplates-temaer og -billeder fra baggrunden og bruge den til at oprette din rapport!

Excel Formler Snydeark: Mellemvejledning

Excel Formler Snydeark: Mellemvejledning

Excel Formler Snydeark: Mellemvejledning

LuckyTemplates kalendertabel: Hvad er det, og hvordan man bruger det

LuckyTemplates kalendertabel: Hvad er det, og hvordan man bruger det

LuckyTemplates kalendertabel: Hvad er det, og hvordan man bruger det

Python i LuckyTemplates: Sådan installeres og konfigureres

Python i LuckyTemplates: Sådan installeres og konfigureres

Lær, hvordan du installerer programmeringssproget Python i LuckyTemplates, og hvordan du bruger dets værktøjer til at skrive koder og vise billeder.

Beregning af dynamiske fortjenestemargener – nem analyse af LuckyTemplates med DAX

Beregning af dynamiske fortjenestemargener – nem analyse af LuckyTemplates med DAX

Lær, hvordan du beregner dynamiske fortjenstmargener ved siden af ​​LuckyTemplates, og hvordan du kan få mere indsigt ved at grave dybere ned i resultaterne.

Sortering af datotabelkolonner i LuckyTemplates

Sortering af datotabelkolonner i LuckyTemplates

Lær, hvordan du sorterer felterne fra kolonner med udvidet datotabel korrekt. Dette er en god strategi at gøre for vanskelige felter.

Find dine topprodukter for hver region i LuckyTemplates ved hjælp af DAX

Find dine topprodukter for hver region i LuckyTemplates ved hjælp af DAX

I denne artikel gennemgår jeg, hvordan du kan finde dine topprodukter pr. region ved hjælp af DAX-beregninger i LuckyTemplates, herunder funktionerne TOPN og CALCUATE.

Junk Dimension: Hvad er det, og hvorfor det er alt andet end junk

Junk Dimension: Hvad er det, og hvorfor det er alt andet end junk

Lær, hvordan du bruger en uønsket dimension til flag med lav kardinalitet, som du ønsker at inkorporere i din datamodel på en effektiv måde.