HAVING záradék az SQL Aggregate Functions-ban

Ebben az oktatóanyagban meg fogunk beszélni néhány módról, amelyekkel használhatjuk vagy hajthatjuk végre a HAVING záradékot SQL összesítő függvényekben . Ennek a záradéknak az SQL összesítő függvényekben való használata nagyban segíthet az adatok összegzésében.

A HAVING záradék majdnem hasonló a WHERE utasításhoz, és azzal együtt is végrehajtható.

Ezek összefüggéseit és különbségeit példák bemutatásával fogjuk megvitatni az oktatóanyagban.

Tartalomjegyzék

CSOPORTOSÍTÁS SZERINT ÉS HOL Kijelentések SQL-ben

Első példánkban az alábbi mintatáblázat végrehajtását és használatát tárgyaljuk . Kérjük, vegye figyelembe, hogy a WHERE záradékot csak meglévő oszlopokkal használhatjuk , csak összesített függvényekben nem.

HAVING záradék az SQL Aggregate Functions-ban

Tegyük fel, hogy egy termék összes értékesítését a SaleAmount oszlop alapján szeretnénk megkapni, ahol az érték nagyobb, mint 2 . Az eredmény eléréséhez a parancsunknak a következőnek kell lennie:

HAVING záradék az SQL Aggregate Functions-ban

Először kiválasztjuk a ProductName-t , és összesítjük a SaleAmount-ot , hogy megkapjuk a TotalSales-t. 

HAVING záradék az SQL Aggregate Functions-ban

Ezután itt a WHERE utasítást használtuk, mivel csak azokat a termékeket próbáljuk megszerezni, amelyeknél a SaleAmount nagyobb, mint 2. A 'GROUP BY ProductName' parancs azt jelzi, hogy a ProductName oszlop alatti sorokat egybe fogja csoportosítani .

A parancskészletünk végrehajtásával látni fogjuk, hogy a ProductName és SaleAmount oszlopok összes adata közül csak a Bulb és a Ventilátor jelent meg . Ez azért van így, mert ők voltak az egyetlenek, akiknek a SaleAmount értéke nagyobb, mint 2.

HAVING záradék az SQL Aggregate Functions-ban

Ebben a példában a WHERE utasítás az eredmények szűrésére szolgál egy meglévő oszloppal, amely a SaleAmount . Vegye figyelembe azt is, hogy a WHERE utasítás a GROUP BY előtt jelenik meg , és nem használható az összesített függvények szűrésére. Másrészt a HAVING záradék a GROUP BY után jelenik meg , és az összesítő függvényen alapuló szűrésre szolgál. 

GROUP BY és HAVING záradék az SQL-ben

Ebben a példában bemutatjuk a különbséget a WHERE utasítás és a HAVING záradék között. Ugyanazt a célt fogjuk használni, mint az előző példában, hogy összehasonlíthassuk és értékelhessük az eredményeket. 

Először jelenítsük meg a termékeket a teljes eladásukkal együtt az alábbi paranccsal. Amint láthatja, az első parancsunk továbbra is ugyanaz, mint a WHERE utasítást végrehajtó első parancsunk.

HAVING záradék az SQL Aggregate Functions-ban

Ha az első két parancsot akarjuk végrehajtani, a következő eredményt kapjuk:

HAVING záradék az SQL Aggregate Functions-ban

Tegyük fel, hogy csak azokat a termékeket szeretnénk megjeleníteni, amelyek összértékesítése meghaladja az 5-öt. A WHERE  utasítást nem használhatjuk, mivel csak meglévő oszlopokkal használható. Ezért használnunk kell a HAVING záradékot, mivel aggregált függvényből fogunk szűrni. 

HAVING záradék az SQL Aggregate Functions-ban

Figyelje meg, hogyan használjuk a HAVING záradékot a GROUP BY után , ellentétben a GROUP BY előtt használt WHERE utasítással. Ennek az az oka, hogy az SQL csoportosítja a rekordokat, mielőtt kiértékelné a HAVING záradékot. 

Ezután hajtsuk végre ezeket a parancsokat a HAVING SUM(SaleAmount)>5 paraméterrel . Miután megadtuk, hogy csak azokat a termékeket szeretnénk beszerezni, amelyek összára meghaladja az 5-öt, észrevesszük, hogy a jelenlegi eredménytáblázatunkban már nem fogjuk látni a tollat . Ez azért van, mert a teljes összege kevesebb, mint 5

HAVING záradék az SQL Aggregate Functions-ban

Röviden, ha adatokat szeretnénk szűrni a táblázatunkból egy meglévő oszlop alapján, akkor a WHERE záradékot használjuk , míg ha egy összesítő függvényből szeretnénk adatokat szűrni, akkor a HAVING záradékot használjuk . 

HAVING and WHERE záradék az SQL Server Management Studio-ban (SSMS)

Most továbblépünk azzal, hogy megvitatjuk és bemutatjuk, hogyan hajthatjuk végre a HAVING záradékot az (SSMS)-ben. Példák bemutatásával foglalkozunk a HAVING és a WHERE záradék közötti különbséggel is.

Az alábbiakban a SalesOrderHeader mintaadataink láthatók . Ez az adat 100 sorból áll . Példánkban a TotalSale-t szeretnénk megkapni Ügyfélazonosítóval , ahol a TotalSale nagyobb, mint 10000 . Vegye figyelembe, hogy a teljes értékesítés a TotalDue oszlop értékeinek összegén alapul .

HAVING záradék az SQL Aggregate Functions-ban

Először is hadd mutassam be, miért nem használhatjuk a WHERE záradékot , amikor a fenti példánk alapján egy összesített függvényre akarunk szűrni. 

Az alábbi képen látható mintaparancskészletet fogjuk használni. Amint látja, technikailag ugyanaz a parancskészletünk, mint az első példánkból.

Ha azonban a bal felső sarokban lévő Execute gombra kattintunk , az hibát fog eredményezni, mert nem tudjuk egyedül használni a WHERE záradékot, amikor az összesítő függvényen szűrünk.

HAVING záradék az SQL Aggregate Functions-ban

A hiba kijavításához az eredményt a HAVING záradékkal kell szűrnünk a WHERE záradék helyett . Az új parancskészletünknek hasonlónak kell lennie az alábbi képhez.

HAVING záradék az SQL Aggregate Functions-ban

Most láthatjuk, hogy a hibánkat kijavították, és az eredményeket tartalmazza10000- nél nagyobb TotalSale- vel .

A WHERE záradékot mindig a GROUP BY záradék előtt , míg a HAVING záradékot mindig a GROUP BY záradék után használjuk .

A HAVING és a WHERE záradék használata SQL-ben  

Ebben a példában tegyük fel, hogy egyszerre szeretnénk használni a WHERE és a HAVING záradékot . Próbáljuk meg lekérni a TotalSale-t Ügyfélazonosítóval , ahol a TotalSale nagyobb, mint 10000 , de csak azokkal az ügyfelekkel, akiknek területazonosítójuk 1

Mivel olyan ügyfelekre szeretnénk szűrni az eredményeket, akiknek Területazonosítójuk 1 , a WHERE záradékot fogjuk használni . Tehát a parancsunknak meg kell egyeznie az előzővel. Ismét hozzáadtunk egy WHERE záradékot a GROUP BY záradék elé .

HAVING záradék az SQL Aggregate Functions-ban

Egyelőre nem látunk nagy különbséget az előző és az új eredmény között. Ha azonban alaposan megnézi a jobb alsó sarkot, most már csak 64 sorunk van , szemben az előző 505 soros adatsorral. Ennek az az oka, hogy az eredményeket a rendszer a területazonosítójuk alapján is szűri .

Következtetés

Összefoglalva, a WHERE záradékot csak meglévő oszlopoknál használhatjuk . Ha összesített függvényekkel kell szűrnünk, akkor helyette a HAVING záradékot kell használnunk.

A HAVING záradék használata az SQL összesítő függvényeiben, valamint a HAVING és a WHERE záradék együttes végrehajtásának gyakorlása kényelmesebbé teheti a felhasználókat, amikor nagyszámú adattal vagy rekorddal dolgoznak. 

Remélem, elegendő információt és megértést adtam a HAVING záradék használatához az SQL összesítő függvényeiben. Ha többet szeretne megtudni erről a témáról és más kapcsolódó tartalomról, tekintse meg a vonatkozó linkek alábbi listáját.

Minden jót,

Hafiz


Dátumtáblázat létrehozása a LuckyTemplates alkalmazásban

Dátumtáblázat létrehozása a LuckyTemplates alkalmazásban

Tudja meg, miért fontos egy dedikált dátumtáblázat a LuckyTemplatesben, és ismerje meg ennek leggyorsabb és leghatékonyabb módját.

LuckyTemplates mobil jelentéskészítési tippek és technikák

LuckyTemplates mobil jelentéskészítési tippek és technikák

Ez a rövid oktatóanyag kiemeli a LuckyTemplates mobil jelentési funkcióját. Megmutatom, hogyan készíthet hatékony jelentéseket mobileszközökön.

Professzionális szolgáltatáselemzési jelentések LuckyTemplatesben

Professzionális szolgáltatáselemzési jelentések LuckyTemplatesben

Ebben a LuckyTemplates bemutatóban olyan jelentéseket tekintünk át, amelyek professzionális szolgáltatáselemzést mutatnak be egy olyan cégtől, amely több szerződéssel és ügyfél-elkötelezettséggel rendelkezik.

Microsoft Power Platform frissítések | Microsoft Ignite 2021

Microsoft Power Platform frissítések | Microsoft Ignite 2021

Tekintse át a Power Apps és a Power Automate legfontosabb frissítéseit, valamint azok előnyeit és következményeit a Microsoft Power Platform számára.

Gyakori SQL-függvények: Áttekintés

Gyakori SQL-függvények: Áttekintés

Fedezzen fel néhány gyakori SQL-függvényt, amelyeket használhatunk, például a karakterláncot, a dátumot és néhány speciális függvényt az adatok feldolgozásához vagy manipulálásához.

LuckyTemplates sablonok létrehozása: útmutató és tippek

LuckyTemplates sablonok létrehozása: útmutató és tippek

Ebből az oktatóanyagból megtudhatja, hogyan hozhatja létre a tökéletes LuckyTemplates sablont, amely az Ön igényeinek és preferenciáinak megfelelően van konfigurálva.

Mezőparaméterek és kis többszörösek a LuckyTemplatesben

Mezőparaméterek és kis többszörösek a LuckyTemplatesben

Ebben a blogban bemutatjuk, hogyan lehet a mezőparamétereket kis többszörösekkel rétegezni, hogy hihetetlenül hasznos betekintést és látványelemeket hozzon létre.

LuckyTemplates rangsor és egyéni csoportosítás

LuckyTemplates rangsor és egyéni csoportosítás

Ebből a blogból megtudhatja, hogyan használhatja a LuckyTemplates rangsorolási és egyéni csoportosítási funkcióit a mintaadatok szegmentálására és kritériumok szerinti rangsorolására.

A LuckyTemplatesben csak egy meghatározott dátumig összesített összeg látható

A LuckyTemplatesben csak egy meghatározott dátumig összesített összeg látható

Ebben az oktatóanyagban egy konkrét technikát fogok bemutatni, hogyan jelenítheti meg a kumulatív összeget csak egy adott dátumig a LuckyTemplates vizualizációjában.

Bullet Charts: speciális egyéni látványelemek a LuckyTemplates számára

Bullet Charts: speciális egyéni látványelemek a LuckyTemplates számára

Ismerje meg, hogyan hozhat létre és testreszabhat Bullet diagramokat a LuckyTemplates alkalmazásban, amelyeket főként a teljesítmény mérésére használnak a célhoz vagy az előző évekhez képest.