Ce este Sinele în Python: Exemple din lumea reală
Ce este Sinele în Python: Exemple din lumea reală
În acest blog, vom discuta câteva expresii comune de tabel, cunoscute și sub numele de CTE . Dacă întâmpinați probleme complexe, folosirea acestor expresii de tabel SQL vă poate ajuta.
Cu CTE , puteți împărți orice sarcină în interogări mici și ușor de gestionat pentru a rezolva probleme complicate.
Acum haideți să explorăm modul în care CTE vă poate face munca mai eficientă în depanarea codurilor.
Cuprins
Sintaxă pentru crearea expresiilor comune de tabel SQL
Mai întâi, trebuie să tastați „ WITH ” urmat de numele expresiei CTE , urmat de „ AS ”.
După aceea, puteți furniza orice interogări între paranteze. Acesta va fi stocat în numele expresiei furnizate care va funcționa ca un tabel virtual.
Apoi, adăugați o instrucțiune SELECT folosind tabelul virtual pe care l-ați creat prin numele expresiei pe care l-ați setat.
Pentru exemplul nostru, vom folosi „ USACusts ” pentru numele expresiei .
Și pentru interogare, vom folosi acest cod.
Această interogare va crea un tabel virtual. Va afișa o sumă totală sau agregată care este grupată după ID-ul clientului, unde țara căreia îi aparțin este „ SUA ”. Datele vor fi extrase din tabelul Vânzări.Clienți .
Vor fi vizibile două coloane, care sunt custid și Agg_Amount . Rețineți că tabelul USACusts nu este un tabel fizic, ci doar un tabel virtual. Asta înseamnă că nu va fi vizibil în baza noastră de date.
După interogare, putem adăuga o instrucțiune SELECT .
Această declarație va selecta toate Agg_Amount care sunt mai mari de 1000 din tabelul USACusts .
Mai multe expresii comune de tabel SQL
Mai multe CTE vă pot ajuta să rezolvați erorile complexe din codul dvs., împărțindu-le în bucăți mai mici. În plus, puteți defini câte CTE doriți. Mai jos este un exemplu de CTE-uri multiple .
Pentru acest exemplu, avem primul CTE care este C1 . De acolo, am selectat YEAR(orderdate) și am creat 2 coloane care sunt orderyear și custid din tabelul Sales.Orders .
Pentru al doilea CTE numit C2 , am selectat orderyear și am adunat numărul de custid folosind comanda COUNT . Apoi l-am numit ca numcusts din C1 . O condiție WHERE a fost adăugată și în C2 pentru a selecta doar anul de comandă care este mai mare decât 2015 . Apoi le-am grupat pe an de ordine .
După aceea, am selectat anul de comandă și numcusts din C2 . Apoi am adăugat o condiție WHERE pentru a selecta doar numărul de clienți care este mai mare de 500 .
În concluzie, acest cod este utilizat pentru a selecta clienții în care anul comandă este mai mare decât 2015 și pentru a selecta numai numărul de clienți care depășește 500 pe baza condiției anului comenzii .
Utilizarea CTE-urilor multiple pentru rezolvarea codurilor complexe
În continuare, voi demonstra mai multe exemple pentru a sublinia și mai mult utilizarea CTE-urilor în depanarea unui set mare de date. Iată un alt exemplu de CTE-uri multiple .
Vă rugăm să rețineți că puteți denumi CTE-urile așa cum doriți, dar pentru acest blog, folosim C1 , C2 , C3 și așa mai departe pentru a identifica și înțelege cu ușurință cum le folosim în exemplele noastre.
Revenind la exemplu, am creat C1 pentru a selecta doar vânzările în care cantitatea comenzii este mai mare de 5 din tabelul Sales.SalesOrderDetails .
Apoi, în C2 , am folosit datele pe care le-am stocat în C1 pentru a se alătura produsului pe baza Product.ID și le-am grupat după numele produsului (p.Name) și culoarea produsului (p.Color) .
Deoarece am declarat o condiție în C1 , vom grupa numai numele produsului și culoarea produsului în C2 pentru comenzile în care cantitatea de comandă (OrderQty) este mai mare de 5 .
După aceea, vom folosi o comandă pentru a selecta toate datele din C2 cu o cantitate de comandă mai mare de 1000 .
În scopul depanării, puteți selecta pur și simplu fiecare dintre CTE-urile pe care le-ați creat pentru a verifica dacă afișează datele corecte. Consultați exemplele de mai jos.
Pentru C1 , afișează toate datele din tabelul Sales.SalesOrderDetail cu o cantitate de comandă mai mare de 5 .
Apoi C2 arată o ieșire a cantității de comandă care este grupată după numele produsului și culoarea din C1 . În C2 , putem vedea coloana orderqty , dar de fapt nu o avem în C2 , deoarece este doar o coloană calculată pe care am generat-o din C1 . De aici, putem începe să folosim orice condiție din coloana orderqty și să efectuăm depanarea.
Deci, acum puteți vedea cum mai multe CTE-uri ne pot ajuta să rezolvăm erorile din codurile complexe prin stocarea lor în CTE-uri și să începeți depanarea fără a deteriora codul real.
Utilizarea CTE-urilor cu declarația de caz
Să avem un alt exemplu cu același context pentru a arăta cum putem utiliza mai multe CTE-uri în depanarea codurilor complexe.
În acest caz, vom folosi o instrucțiune CASE care va crea o coloană Categorie de produse cu rezultate care se bazează pe cantitatea agregată de orderqty din C2 .
După cum am menționat mai devreme, nu am avut cantitatea de comandă în primul CTE , precum și Categoria de produs , dar am folosit tabele intermediare pentru a calcula și a efectua diferite calcule.
În exemplul următor, vom crea o sumă agregată pe baza categoriei de produse pe care am creat-o în exemplul anterior. Dar pentru a face acest lucru, vom pune instrucțiunea CASE pentru Categoria de produs în al treilea CTE , care este C3 .
Înainte de a continua, să verificăm rezultatul C3 adăugând „ SELECT * FROM C3 ” sub C3 .
În C3 putem vedea coloanele ProductName , Color , orderqty și Product Category . De aici, putem începe agregarea pe baza categoriei de produse . Să facem acest lucru utilizând următoarea comandă de sub C3 .
Exemplul de mai jos este rezultatul după crearea unei sume agregate folosind comanda de mai sus.
Inițial, nu aveam coloanele Categoria de produse și cantitatea de comandă , dar putem genera rezultate de exemplu pe baza acestor coloane utilizând mai multe CTE .
În acest moment, puteți vedea că putem face orice cu ajutorul CTE-urilor în lucrul cu codurile noastre mai eficient.
Tabele Temp SQL și vizualizări pentru filtrul utilizator LuckyTemplates
în SQL folosind IN, NOT IN, LIKE și NOT LIKE
Extragerea datelor SQL folosind OFFSET și FETCH
Concluzie
În acest tutorial, ați învățat sintaxa adecvată în crearea expresiilor de tabel SQL comune și cum să utilizați mai multe CTE-uri în depanarea codurilor complexe prin izolarea unor părți mici de date și stocarea lor într-un anumit CTE .
Învățând acest lucru, acum aveți capacitatea de a vă depana codurile mai eficient. Amintiți-vă că puteți utiliza orice nume pentru CTE și nu puteți utiliza sau apela niciun CTE decât dacă este creat. Odată ce vă familiarizați cu CTE , vă puteți considera un utilizator intermediar al SQL .
Dacă doriți să aflați mai multe despre acest subiect și despre alte conținuturi conexe, cu siguranță puteți consulta lista de link-uri relevante de mai jos.
Toate cele bune,
Hafiz
Ce este Sinele în Python: Exemple din lumea reală
Veți învăța cum să salvați și să încărcați obiecte dintr-un fișier .rds în R. Acest blog va trata, de asemenea, cum să importați obiecte din R în LuckyTemplates.
În acest tutorial despre limbajul de codare DAX, aflați cum să utilizați funcția GENERATE și cum să schimbați în mod dinamic titlul unei măsuri.
Acest tutorial va acoperi cum să utilizați tehnica Multi Threaded Dynamic Visuals pentru a crea informații din vizualizările dinamice de date din rapoartele dvs.
În acest articol, voi trece prin contextul filtrului. Contextul de filtrare este unul dintre subiectele majore despre care orice utilizator LuckyTemplates ar trebui să învețe inițial.
Vreau să arăt cum serviciul online LuckyTemplates Apps poate ajuta la gestionarea diferitelor rapoarte și informații generate din diverse surse.
Aflați cum să vă calculați modificările marjei de profit folosind tehnici precum măsurarea ramificării și combinarea formulelor DAX în LuckyTemplates.
Acest tutorial va discuta despre ideile de materializare a cache-urilor de date și despre modul în care acestea afectează performanța DAX-ului în furnizarea de rezultate.
Dacă încă utilizați Excel până acum, atunci acesta este cel mai bun moment pentru a începe să utilizați LuckyTemplates pentru nevoile dvs. de raportare a afacerii.
Ce este LuckyTemplates Gateway? Tot ce trebuie să știți