Wat is zelf in Python: voorbeelden uit de echte wereld
Wat is zelf in Python: voorbeelden uit de echte wereld
In deze blog bespreken we enkele algemene tabelexpressies, ook wel CTE's genoemd . Als u complexe problemen tegenkomt, kan het gebruik van deze SQL-tabelexpressies u helpen.
Met CTE kunt u elke taak opsplitsen in kleine en beheersbare vragen om ingewikkelde problemen op te lossen.
Laten we nu eens kijken hoe CTE uw werk efficiënter kan maken bij het oplossen van problemen met codes.
Inhoudsopgave
Syntaxis voor het maken van gemeenschappelijke SQL-tabeluitdrukkingen
Eerst moet u " WITH " typen, gevolgd door uw CTE-expressienaam , gevolgd door " AS ".
Daarna kunt u eventuele vragen tussen haakjes opgeven. Dit wordt opgeslagen in de opgegeven uitdrukkingsnaam die zal werken als een virtuele tabel.
Voeg vervolgens een SELECT-instructie toe met behulp van de virtuele tabel die u hebt gemaakt via de expressienaam die u hebt ingesteld.
Voor ons voorbeeld gebruiken we ' USACusts ' voor de naam van de expressie .
En voor de query gebruiken we deze code.
Met deze query wordt een virtuele tabel gemaakt. Het toont een totaal of geaggregeerd bedrag dat is gegroepeerd op klant-ID, waarbij het land waartoe ze behoren ' VS' is . De gegevens worden geëxtraheerd uit de tabel Sales.Customers .
Er zijn twee kolommen zichtbaar, namelijk custid en Agg_Amount . Houd er rekening mee dat de USACusts- tabel geen fysieke tafel is , maar alleen een virtuele tafel. Dat betekent dat het niet zichtbaar is in onze database.
Na de query kunnen we dan een SELECT-instructie toevoegen .
Deze instructie selecteert alle Agg_Amount die groter zijn dan 1000 uit de USACusts- tabel.
Meerdere gemeenschappelijke SQL-tabeluitdrukkingen
Meerdere CTE's kunnen u helpen complexe fouten in uw code op te lossen door ze op te splitsen in kleinere stukjes. Bovendien kunt u zoveel CTE's definiëren als u wilt. Hieronder ziet u een voorbeeld van meerdere CTE's .
Voor dit voorbeeld hebben we de eerste CTE die C1 is . Van daaruit hebben we YEAR (orderdate) geselecteerd en 2 kolommen gemaakt: orderyear en custid uit de tabel Sales.Orders .
Voor de tweede CTE met de naam C2 hebben we orderyear geselecteerd en het aantal custid verzameld met behulp van het COUNT- commando. Toen noemden we het als numcusts van C1 . Er is ook een WHERE- voorwaarde toegevoegd in C2 om alleen het orderjaar te selecteren dat groter is dan 2015 . Vervolgens hebben we ze gegroepeerd op besteljaar .
Daarna selecteerden we het orderjaar en de numcusts uit C2 . Vervolgens hebben we een WHERE- voorwaarde toegevoegd om alleen het aantal klanten te selecteren dat groter is dan 500 .
Kortom, deze code wordt gebruikt om klanten te selecteren waarvan het orderjaar groter is dan 2015 en alleen het aantal klanten te selecteren dat meer dan 500 is op basis van de orderjaarconditie .
Meerdere CTE's gebruiken voor het oplossen van complexe codes
Vervolgens zal ik meer voorbeelden demonstreren om het gebruik van CTE's bij het oplossen van problemen met een grote hoeveelheid gegevens verder te benadrukken. Hier is nog een voorbeeld van meerdere CTE's .
Houd er rekening mee dat u CTE's een naam kunt geven zoals u dat wilt, maar voor deze blog gebruiken we C1 , C2 , C3 , enzovoort om gemakkelijk te identificeren en te begrijpen hoe we ze in onze voorbeelden gebruiken.
Om terug te gaan naar het voorbeeld, we hebben C1 gemaakt om alleen de verkopen te selecteren waarvan de bestelhoeveelheid groter is dan 5 uit de tabel Sales.SalesOrderDetails .
Vervolgens gebruikten we in C2 de gegevens die we in C1 hadden opgeslagen om lid te worden van het product op basis van de Product.ID en ze te groeperen op productnaam (p.Name) en productkleur (p.Color) .
Aangezien we een voorwaarde in C1 hebben aangegeven , groeperen we alleen de productnaam en productkleur in C2 voor bestellingen waarbij de bestelhoeveelheid (OrderQty) groter is dan 5 .
Daarna gebruiken we een opdracht om alle gegevens uit C2 te selecteren met een bestelhoeveelheid die groter is dan 1000 .
Voor het oplossen van problemen kunt u eenvoudig elk van de CTE's selecteren die u heeft gemaakt om te controleren of de juiste gegevens worden weergegeven. Raadpleeg de onderstaande voorbeelden.
Voor C1 toont het alle gegevens uit de tabel Sales.SalesOrderDetail met een bestelhoeveelheid die groter is dan 5 .
Vervolgens toont C2 een uitvoer van de bestelhoeveelheid die is gegroepeerd op productnaam en kleur van C1 . In C2 kunnen we de kolom orderqty zien , maar die hebben we eigenlijk niet in C2 omdat het slechts een berekende kolom is die we hebben gegenereerd op basis van C1 . Vanaf hier kunnen we elke voorwaarde in de kolom OrderQty gaan gebruiken en probleemoplossing uitvoeren.
U kunt nu dus zien hoe meerdere CTE's ons kunnen helpen bij het oplossen van fouten in complexe codes door ze op te slaan in CTE's en te beginnen met het oplossen van problemen zonder de eigenlijke code te beschadigen.
CTE's gebruiken met Case Statement
Laten we nog een voorbeeld nemen met dezelfde context om te laten zien hoe we meerdere CTE's kunnen gebruiken bij het oplossen van complexe codes.
In dit geval gaan we een CASE- instructie gebruiken die een kolom Productcategorie maakt met resultaten die zijn gebaseerd op de totale hoeveelheid orderhoeveelheid van C2 .
Zoals eerder vermeld, hadden we geen orderhoeveelheid in de eerste CTE en Productcategorie , maar we gebruikten tussenliggende tabellen om verschillende berekeningen te berekenen en uit te voeren.
In het volgende voorbeeld maken we een geaggregeerd bedrag op basis van de productcategorie die we in het vorige voorbeeld hebben gemaakt. Maar om dit te doen, plaatsen we de CASE- instructie voor de productcategorie in de derde CTE , namelijk C3 .
Laten we, voordat we verder gaan, de uitvoer van C3 controleren door " SELECT * FROM C3 " onder C3 toe te voegen .
In C3 kunnen we de kolommen ProductName , Color , orderqty en Product Category zien . Vanaf hier kunnen we beginnen met aggregeren op basis van de productcategorie . Laten we dit doen door de volgende opdracht onder C3 te gebruiken .
Het onderstaande voorbeeld is het resultaat na het maken van een geaggregeerd bedrag met behulp van de bovenstaande opdracht.
Aanvankelijk hadden we de kolommen Productcategorie en bestelhoeveelheid niet , maar we kunnen op basis van deze kolommen voorbeelduitvoer genereren door meerdere CTE's te gebruiken .
Op dit moment kunt u zien dat we alles kunnen doen met de hulp van CTE's om efficiënter met onze codes te werken.
Tijdelijke SQL-tabellen en -weergaven voor LuckyTemplates Gebruikersfilter
in SQL met behulp van IN, NOT IN, LIKE en NOT LIKE
SQL-gegevensextractie met behulp van OFFSET en FETCH
Conclusie
In deze zelfstudie hebt u de juiste syntaxis geleerd voor het maken van algemene SQL-tabelexpressies en hoe u meerdere CTE's kunt gebruiken bij het oplossen van complexe codes door kleine gegevensdelen te isoleren en op te slaan in een bepaalde CTE .
Door dit te leren, heb je nu de mogelijkheid om je codes efficiënter te debuggen. Onthoud dat u elke naam voor CTE kunt gebruiken en dat u geen CTE kunt gebruiken of aanroepen tenzij deze is gemaakt. Als u eenmaal vertrouwd bent met CTE , kunt u uzelf beschouwen als een intermediaire gebruiker van SQL .
Als u meer wilt weten over dit onderwerp en andere gerelateerde inhoud, kunt u zeker de lijst met relevante links hieronder bekijken.
Al het beste,
Hafiz
Wat is zelf in Python: voorbeelden uit de echte wereld
Je leert hoe je objecten uit een .rds-bestand in R opslaat en laadt. In deze blog wordt ook besproken hoe je objecten uit R naar LuckyTemplates importeert.
In deze tutorial over DAX-coderingstaal leert u hoe u de functie GENERATE gebruikt en hoe u de titel van een maat dynamisch wijzigt.
Deze zelfstudie behandelt hoe u de Multi Threaded Dynamic Visuals-techniek kunt gebruiken om inzichten te creëren op basis van dynamische gegevensvisualisaties in uw rapporten.
In dit artikel zal ik de filtercontext doornemen. Filtercontext is een van de belangrijkste onderwerpen waarover elke LuckyTemplates-gebruiker in eerste instantie zou moeten leren.
Ik wil laten zien hoe de online service LuckyTemplates Apps kan helpen bij het beheren van verschillende rapporten en inzichten die uit verschillende bronnen zijn gegenereerd.
Leer hoe u wijzigingen in uw winstmarge kunt berekenen met behulp van technieken zoals vertakking van metingen en het combineren van DAX-formules in LuckyTemplates.
Deze tutorial bespreekt de ideeën van materialisatie van datacaches en hoe deze de prestaties van DAX beïnvloeden bij het leveren van resultaten.
Als u tot nu toe nog steeds Excel gebruikt, is dit het beste moment om LuckyTemplates te gaan gebruiken voor uw zakelijke rapportagebehoeften.
Wat is LuckyTemplates Gateway? Alles wat u moet weten