LuckyTemplates What-If-parameterfunktion
Den här bloggen introducerar den nya funktionen i LuckyTemplates, analysparametern What-If. Du kommer att se hur det gör allt snabbt och enkelt för din scenarioanalys.
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
Den här bloggen introducerar den nya funktionen i LuckyTemplates, analysparametern What-If. Du kommer att se hur det gör allt snabbt och enkelt för din scenarioanalys.
Lär dig hur du avgör om din intäktstillväxt är bra genom att kontrollera om dina marginaler ökade med hjälp av LuckyTemplates mäter förgrening.
Lär dig och förstå hur du kan skapa och använda LuckyTemplates-parametrar som är en kraftfull funktion i frågeredigeraren.
Denna handledning kommer att diskutera hur man skapar ett runt stapeldiagram med Charticulator. Du kommer att lära dig hur du designar dem för din LuckyTemplates-rapport.
Lär dig hur du använder PowerApps funktioner och formler för att förbättra funktionaliteten och ändra ett beteende i vår Power Apps canvas-app.
I den här handledningen kommer du att lära dig hur du kopplar ihop funktioner med hjälp av dplyr-röroperatorn i programmeringsspråket R.
RANKX från LuckyTemplates låter dig returnera rankningen av ett specifikt nummer i varje tabellrad som utgör en del av en lista med nummer.
Lär dig hur du tar isär en PBIX-fil för att extrahera LuckyTemplates-teman och bilder från bakgrunden och använda den för att skapa din rapport!
Excel Formler Fuskblad: Mellanvägledning
LuckyTemplates Kalendertabell: Vad är det och hur man använder det