Oplev unik indsigt ved hjælp af LuckyTemplates TOPN-funktion
Denne blog indeholder LuckyTemplates TOPN DAX-funktionen, som giver dig mulighed for at få unik indsigt fra dine data, hvilket hjælper dig med at træffe bedre markedsføringsbeslutninger.
I denne øvelse vil vi diskutere nogle få måder, hvorpå vi kan bruge eller udføre HAVING-sætningen i SQL-aggregatfunktioner . Brug af denne klausul i SQL-aggregatfunktioner kan i høj grad hjælpe med at opsummere data.
HAVING- sætning ligner næsten WHERE -sætningen og kan også udføres sammen med den.
Vi vil diskutere deres sammenhænge og forskelle ved at give eksempler, mens vi gennemgår denne øvelse.
Indholdsfortegnelse
GROUP BY And WHERE-udsagn i SQL
For vores første eksempel vil vi diskutere, hvordan man udfører og bruger eksempeltabellen nedenfor. Bemærk venligst, at vi kun kan bruge WHERE -udtrykket med eksisterende kolonner og ikke i aggregerede funktioner alene.
Lad os sige, at vi ønsker at få et produkts samlede salg baseret på kolonnen SaleAmount , hvor værdien er større end 2 . For at få resultatet skal vores kommando være følgende:
Først vælger vi produktnavnet og samler salgsbeløbet for at få det samlede salg.
Derefter brugte vi WHERE- sætningen her, da vi kun forsøger at få de produkter, hvor SaleAmount er større end 2. Kommandoen 'GROUP BY ProductName' angiver, at den vil gruppere rækker under kolonnen ProductName til én.
Ved at udføre vores sæt af kommandoer vil vi se, at ud af alle data under kolonnerne Produktnavn og Salgsbeløb , var det kun Bulb og Fan , der blev vist. Det er fordi de var de eneste, der havde et salgsbeløb , der er større end 2.
I dette eksempel er WHERE- sætningen til filtrering af resultater med en eksisterende kolonne, som er vores SaleAmount . Bemærk også, at WHERE- sætningen vises før GROUP BY og ikke kan bruges til at filtrere aggregerede funktioner. På den anden side vises HAVING- udtrykket efter GROUP BY og bruges til filtrering baseret på en aggregeret funktion.
GRUPPER BY OG HAVING Klausul i SQL
I dette eksempel skal vi demonstrere forskellen mellem WHERE- sætningen og HAVING -sætningen. Vi vil bruge det samme mål, som vi har i det foregående eksempel, så vi kan sammenligne og evaluere resultaterne.
Lad os først vise produkter med deres samlede salg ved hjælp af kommandoen nedenfor. Som du kan se, er vores første kommando stadig den samme som vores første kommando, der udfører WHERE -sætningen.
Hvis vi skal udføre vores første to kommandoer, får vi følgende resultat:
Lad os nu sige, at vi kun ønsker at vise produkter, hvis samlede salg er mere end 5. Vi kan ikke bruge WHERE- sætningen, da den kun kan bruges med eksisterende kolonner. Derfor er vi nødt til at bruge HAVING- sætning, da vi filtrerer fra en aggregeret funktion.
Læg mærke til, hvordan vi bruger HAVING- sætning efter GROUP BY i modsætning til WHERE -sætningen, der bruges før GROUP BY. Dette skyldes, at SQL vil gruppere poster, før den evaluerer HAVING- sætningen.
Lad os derefter udføre disse kommandoer sammen med HAVING SUM(SaleAmount)>5 . Efter at have specificeret, at vi kun ønsker at få de produkter, hvis samlede pris er større end 5, vil vi bemærke, at i vores nuværende tabel med resultater, vil vi ikke se pennen længere . Det er fordi dets samlede antal er mindre end 5 .
Kort sagt, når vi ønsker at filtrere data fra vores tabel baseret på en eksisterende kolonne, bruger vi WHERE-sætningen , hvorimod når vi vil filtrere data fra en aggregeret funktion, bruger vi HAVING-sætningen .
HAVING And WHERE-klausul i SQL Server Management Studio (SSMS)
Nu går vi videre ved at diskutere og demonstrere, hvordan vi kan udføre HAVING-sætningen i (SSMS). Vi vil også tackle forskellen mellem HAVING-sætningen og WHERE-sætningen ved at give eksempler.
Nedenfor er vores eksempeldata SalesOrderHeader. Disse data består af 100 rækker. For vores eksempel ønsker vi at få TotalSale efter kunde-ID , hvor TotalSale er større end 10000 . Bemærk, at det samlede salg er baseret på summen af værdierne i kolonnen TotalDue .
Lad mig først demonstrere, hvorfor vi ikke kan bruge WHERE-sætningen , når vi vil filtrere på en aggregeret funktion baseret på vores eksempel ovenfor.
Vi bruger prøvesættet af kommandoer fra billedet nedenfor. Som du kan se, har vi teknisk set det samme sæt kommandoer som det, vi har fra vores allerførste eksempel.
Men når vi klikker på Udfør i øverste venstre hjørne, vil det resultere i en fejl, fordi vi ikke kan bruge WHERE- sætningen alene, når vi filtrerer på den samlede funktion.
For at rette fejlen skal vi filtrere resultatet ved hjælp af HAVING -sætningen i stedet for WHERE- sætningen. Vores nye sæt kommandoer skal ligne billedet nedenfor.
Nu kan vi se, at vores fejl er rettet og indeholder resultaterne prmed et samlet salg på mere end 10.000 .
Igen bruges WHERE-udtrykket altid før GROUP BY-udtrykket , mens HAVING-udtrykket altid bruges efter et GROUP BY-udtryk .
Brug af både HAVING-klausul og WHERE-klausul i SQL
For dette eksempel, lad os sige, at vi vil bruge WHERE og HAVING-sætningen på samme tid. Lad os prøve at få TotalSale efter kunde-id , hvor TotalSale er større end 10000 , men kun med kunder, hvor deres territorium-id er lig med 1 .
Da vi ønsker at filtrere resultater med kunder, der har 1 som deres TerritoryID , bruger vi WHERE-sætningen. Så vores kommando bør være den samme som vores tidligere. Igen har vi tilføjet en WHERE-sætning før GROUP BY-sætningen.
Indtil videre kan vi ikke se den store forskel mellem vores tidligere resultat og dette nye. Men hvis du ser nærmere på det nederste højre hjørne, har vi nu kun 64 rækker sammenlignet med den forrige med 505 rækker data. Det skyldes, at resultaterne også filtreres ud fra deres territorium-id .
Konklusion
For at opsummere kan vi kun bruge WHERE -sætningen med eksisterende kolonner. Hvis vi skal filtrere med aggregerede funktioner, skal vi bruge HAVING -sætningen i stedet.
Brug af HAVING -udtrykket i SQL-aggregatfunktioner og øve måder at udføre HAVING- udtrykket og WHERE -udtrykket sammen kan give brugerne bekvemmelighed, når de arbejder på et stort antal data eller poster.
Jeg håber, jeg har givet dig tilstrækkelig information og forståelse for, hvordan du bruger HAVING- sætningen i SQL-aggregatfunktioner. 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 blog indeholder LuckyTemplates TOPN DAX-funktionen, som giver dig mulighed for at få unik indsigt fra dine data, hvilket hjælper dig med at træffe bedre markedsføringsbeslutninger.
Find ud af, hvorfor det er vigtigt at have en dedikeret datotabel i LuckyTemplates, og lær den hurtigste og mest effektive måde at gøre det på.
Denne korte vejledning fremhæver LuckyTemplates mobilrapporteringsfunktion. Jeg vil vise dig, hvordan du kan udvikle rapporter effektivt til mobilenheder.
I denne LuckyTemplates Showcase gennemgår vi rapporter, der viser professionel serviceanalyse fra et firma, der har flere kontrakter og kundeengagementer.
Gå gennem de vigtigste opdateringer til Power Apps og Power Automate og deres fordele og implikationer for Microsoft Power Platform.
Opdag nogle almindelige SQL-funktioner, som vi kan bruge, såsom streng, dato og nogle avancerede funktioner til at behandle eller manipulere data.
I denne tutorial lærer du, hvordan du opretter din perfekte LuckyTemplates-skabelon, der er konfigureret til dine behov og præferencer.
I denne blog vil vi demonstrere, hvordan man lagdelte feltparametre med små multipler for at skabe utrolig nyttig indsigt og visuals.
I denne blog vil du lære, hvordan du bruger LuckyTemplates rangerings- og brugerdefinerede grupperingsfunktioner til at segmentere et eksempeldata og rangordne det efter kriterier.
I denne tutorial vil jeg dække en specifik teknik omkring, hvordan du kun viser Kumulativ Total op til en bestemt dato i dine visuals i LuckyTemplates.