Hvad er Power Query & M Language: En detaljeret oversigt
Denne vejledning giver et overblik over Power Query Editor og M-sproget inde på LuckyTemplates-skrivebordet.
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 ".
Derefter kan du angive eventuelle forespørgsler mellem parenteserne. Dette vil blive gemt i det angivne udtryksnavn, der vil fungere som en virtuel tabel.
Tilføj derefter aved hjælp af den virtuelle tabel, du har oprettet via det udtryksnavn, du har angivet.
For vores eksempel vil vi bruge " USACusts " til udtrykkets navn .
Og til forespørgslen bruger vi denne kode.
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
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 .
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 .
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 .
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 .
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.
For C1 viser den alle data fra tabellen Sales.SalesOrderDetail med en ordremængde, der er større end 5 .
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 .
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 .
Inden vi fortsætter, lad os kontrollere outputtet fra C3 ved at tilføje " SELECT * FROM C3 " under C3 .
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 .
Eksemplet nedenfor er resultatet efter oprettelse af et aggregeret beløb ved at bruge kommandoen ovenfor.
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
Denne vejledning giver et overblik over Power Query Editor og M-sproget inde på LuckyTemplates-skrivebordet.
Lær, hvordan du opretter en sideinddelt rapport, tilføjer tekster og billeder og derefter eksporterer din rapport til forskellige dokumentformater.
Lær, hvordan du bruger SharePoint-automatiseringsfunktionen til at skabe arbejdsgange og hjælpe dig med at mikrostyre SharePoint-brugere, -biblioteker og -lister.
Udvid dine rapportudviklingsevner ved at deltage i en dataanalyseudfordring. Acceleratoren kan hjælpe dig med at blive LuckyTemplates-superbruger!
Lær, hvordan du beregner løbende totaler i LuckyTemplates ved hjælp af DAX. Løbende totaler giver dig mulighed for ikke at blive fanget af et individuelt resultat.
Forstå konceptet med variabler i DAX i LuckyTemplates og betydningen af variabler for, hvordan dine mål beregnes.
Lær mere om det brugerdefinerede visuelle kaldet LuckyTemplates Slope-diagrammet, som bruges til at vise stigning/fald for en enkelt eller flere metrics.
Opdag farvetemaerne i LuckyTemplates. Disse er afgørende for, at dine rapporter og visualiseringer kan se ud og fungere problemfrit.
Beregning af et gennemsnit i LuckyTemplates kan gøres på mange måder for at give dig præcise oplysninger til dine virksomhedsrapporter.
Lad os dykke ned i Standard LuckyTemplates-temaer og gennemgå nogle af de funktioner, der er indbygget i selve LuckyTemplates Desktop-applikationen.