Skapa en datumtabell i LuckyTemplates
Ta reda på varför det är viktigt att ha en dedikerad datumtabell i LuckyTemplates och lär dig det snabbaste och mest effektiva sättet att göra det.
I den här handledningen kommer vi att diskutera några sätt på vilka vi kan använda eller exekvera HAVING-satsen i SQL-aggregatfunktioner . Att använda den här klausulen i SQL-aggregatfunktioner kan i hög grad hjälpa till vid datasammanfattning.
HAVING -sats liknar nästan WHERE -satsen och kan också köras tillsammans med den.
Vi kommer att diskutera deras samband och skillnader genom att ge exempel när vi går igenom den här handledningen.
Innehållsförteckning
GROUP BY And WHERE-satser i SQL
För vårt första exempel kommer vi att diskutera hur man kör och använder exempeltabellen nedan. Observera att vi bara kan använda WHERE- satsen med befintliga kolumner och inte enbart i aggregerade funktioner.
Låt oss säga att vi vill få en produkts totala försäljning baserat på kolumnen SaleAmount där värdet är större än 2 . För att få resultatet bör vårt kommando vara följande:
Först väljer vi Produktnamnet och aggregerar SaleAmount för att få TotalSales.
Sedan använde vi WHERE- satsen här eftersom vi bara försöker få fram produkter där SaleAmount är större än 2. Kommandot 'GROUP BY ProductName' indikerar att det kommer att gruppera rader under kolumnen ProductName till en.
Genom att utföra vår uppsättning kommandon ser vi att av all data under kolumnerna ProductName och SaleAmount , visades bara Bulb och Fan . Det beror på att de var de enda som hade ett försäljningsbelopp som är större än 2.
I det här exemplet är WHERE- satsen för att filtrera resultat med en befintlig kolumn, vilket är vårt SaleAmount . Observera också att WHERE -satsen visas före GROUP BY och inte kan användas för att filtrera aggregerade funktioner. Å andra sidan visas HAVING -satsen efter GROUP BY och används för filtrering baserat på en aggregerad funktion.
GROUP BY Och HAVING Klausul i SQL
I det här exemplet kommer vi att visa skillnaden mellan WHERE- satsen och HAVING -satsen. Vi kommer att använda samma mål som vi har i föregående exempel så att vi kan jämföra och utvärdera resultaten.
Låt oss först visa produkter med deras totala försäljning med hjälp av kommandot nedan. Som du kan se är vårt första kommando fortfarande detsamma som vårt första kommando som kör WHERE -satsen.
Om vi ska köra våra första två kommandon får vi följande resultat:
Låt oss nu säga att vi bara vill visa produkter vars totala försäljning är mer än 5. Vi kan inte använda WHERE- satsen eftersom den bara kan användas med befintliga kolumner. Därför måste vi använda HAVING- satsen eftersom vi kommer att filtrera från en aggregerad funktion.
Lägg märke till hur vi använder HAVING- satsen efter GROUP BY till skillnad från WHERE -satsen som används före GROUP BY. Detta beror på att SQL kommer att gruppera poster innan den utvärderar HAVING -satsen.
Låt oss sedan köra dessa kommandon tillsammans med HAVING SUM(SaleAmount)>5 . Efter att ha specificerat att vi bara vill få de produkter vars totala pris är högre än 5, kommer vi att märka att i vår nuvarande resultattabell kommer vi inte att se pennan längre . Det beror på att den totala summan är mindre än 5 .
Kort sagt, när vi vill filtrera data från vår tabell baserat på en befintlig kolumn använder vi WHERE-satsen , medan när vi vill filtrera data från en aggregerad funktion använder vi HAVING-satsen .
HAVING And WHERE-klausul i SQL Server Management Studio (SSMS)
Nu ska vi gå vidare genom att diskutera och demonstrera hur vi kan exekvera HAVING-satsen i (SSMS). Vi kommer också att ta itu med skillnaden mellan HAVING-satsen och WHERE-satsen genom att ge exempel.
Nedan visas vårt exempel på SalesOrderHeader. Denna data består av 100 rader. För vårt exempel vill vi få TotalSale efter kund-ID där TotalSale är större än 10 000 . Observera att den totala försäljningen baseras på summan av värdena i kolumnen TotalDue .
Låt mig först visa varför vi inte kan använda WHERE-satsen när vi vill filtrera på en aggregerad funktion baserat på vårt exempel ovan.
Vi kommer att använda exempeluppsättningen av kommandon från bilden nedan. Som du kan se har vi tekniskt sett samma uppsättning kommandon som den vi har från vårt allra första exempel.
Men när vi klickar på Execute i det övre vänstra hörnet kommer det att resultera i ett fel eftersom vi inte kan använda WHERE- satsen ensam när vi filtrerar på aggregatfunktionen.
För att rätta till felet måste vi filtrera resultatet med HAVING -satsen istället för WHERE -satsen. Vår nya uppsättning kommandon bör likna bilden nedan.
Nu kan vi se att vårt fel har rättats och innehåller resultaten prmed en totalförsäljning större än 10 000 .
Återigen, WHERE-satsen används alltid före GROUP BY-satsen , medan HAVING-satsen alltid används efter en GROUP BY-sats .
Använder både HAVING-klausul och WHERE-klausul i SQL
För det här exemplet, låt oss säga att vi vill använda WHERE och HAVING-satsen samtidigt. Låt oss försöka få TotalSale efter kund-ID där TotalSale är större än 10 000 men bara med kunder där deras territorium-ID är lika med 1 .
Eftersom vi vill filtrera resultat med kunder som har 1 som territorium-ID kommer vi att använda WHERE-satsen. Så vårt kommando bör vara detsamma som vårt tidigare. Återigen, vi har lagt till en WHERE-sats före GROUP BY-satsen.
För närvarande kan vi inte se stor skillnad mellan vårt tidigare resultat och det här nya. Men om du tittar noga på det nedre högra hörnet har vi nu bara 64 rader jämfört med den föregående med 505 rader med data. Det beror på att resultaten också filtreras utifrån deras territorium-ID .
Slutsats
För att sammanfatta kan vi bara använda WHERE -satsen med befintliga kolumner. Om vi behöver filtrera med aggregerade funktioner måste vi istället använda HAVING -satsen.
Att använda HAVING -satsen i SQL-aggregatfunktioner och öva på sätt att exekvera HAVING- satsen och WHERE -satsen tillsammans kan ge användarna bekvämlighet när de arbetar med ett stort antal data eller poster.
Jag hoppas att jag har försett dig med tillräckligt med information och förståelse för hur man använder HAVING -satsen i SQL-aggregatfunktioner. Om du vill veta mer om det här ämnet och annat relaterat innehåll kan du absolut kolla in listan med relevanta länkar nedan.
Med vänliga hälsningar,
Hafiz
Ta reda på varför det är viktigt att ha en dedikerad datumtabell i LuckyTemplates och lär dig det snabbaste och mest effektiva sättet att göra det.
Denna korta handledning belyser LuckyTemplates mobilrapporteringsfunktion. Jag ska visa dig hur du kan utveckla rapporter effektivt för mobila enheter.
I denna LuckyTemplates Showcase går vi igenom rapporter som visar professionell serviceanalys från ett företag som har flera kontrakt och kundengagemang.
Gå igenom de viktigaste uppdateringarna för Power Apps och Power Automate och deras fördelar och konsekvenser för Microsoft Power Platform.
Upptäck några vanliga SQL-funktioner som vi kan använda som sträng, datum och några avancerade funktioner för att bearbeta eller manipulera data.
I den här handledningen kommer du att lära dig hur du skapar din perfekta LuckyTemplates-mall som är konfigurerad efter dina behov och preferenser.
I den här bloggen kommer vi att visa hur man lager fältparametrar med små multiplar för att skapa otroligt användbara insikter och bilder.
I den här bloggen kommer du att lära dig hur du använder LuckyTemplates ranknings- och anpassade grupperingsfunktioner för att segmentera en exempeldata och rangordna den enligt kriterier.
I den här handledningen kommer jag att täcka en specifik teknik kring hur man visar Kumulativ total endast upp till ett specifikt datum i dina bilder i LuckyTemplates.
Lär dig hur du skapar och anpassar punktdiagram i LuckyTemplates, som huvudsakligen används för att mäta prestanda mot mål eller tidigare år.