Dodawaj, usuwaj i zmieniaj nazwy kolumn w R za pomocą Dplyr
W tym samouczku omówimy pakiet dplyr, który umożliwia sortowanie, filtrowanie, dodawanie i zmianę nazw kolumn w języku R.
W tym blogu omówimy niektóre popularne wyrażenia tabelaryczne, znane również jako CTE . Jeśli napotkasz złożone problemy, skorzystaj z tych wyrażeń tabel SQL, które mogą ci pomóc.
Dzięki CTE możesz podzielić dowolne zadanie na małe i łatwe do zarządzania zapytania, aby rozwiązać skomplikowane problemy.
Przyjrzyjmy się teraz, w jaki sposób CTE może usprawnić pracę przy rozwiązywaniu problemów z kodami.
Spis treści
Składnia do tworzenia typowych wyrażeń tabel SQL
Najpierw musisz wpisać „ WITH ”, a następnie nazwę wyrażenia CTE , a następnie „ AS ”.
Następnie możesz podać dowolne zapytania między nawiasami. Zostanie to zapisane w podanej nazwie wyrażenia, które będzie działać jako wirtualna tabela.
Następnie dodaj instrukcję SELECT , korzystając z wirtualnej tabeli utworzonej za pomocą ustawionej nazwy wyrażenia .
W naszym przykładzie użyjemy „ USACusts ” jako nazwy wyrażenia .
W przypadku zapytania użyjemy tego kodu.
To zapytanie utworzy wirtualną tabelę. Wyświetli się łączna lub zagregowana kwota pogrupowana według identyfikatora klienta, w przypadku gdy kraj, do którego należą, to „ USA ”. Dane zostaną wyodrębnione z tabeli Sales.Customers .
Widoczne będą dwie kolumny, które są custid i Agg_Amount . Zwróć uwagę, że tabela USACusts nie jest stołem fizycznym , a jedynie wirtualnym. Oznacza to, że nie będzie widoczny w naszej bazie danych.
Po zapytaniu możemy dodać instrukcję SELECT .
Ta instrukcja wybierze wszystkie Agg_Amount , które są większe niż 1000 z tabeli USACusts .
Wiele wspólnych wyrażeń tabel SQL
Wiele CTE może pomóc w rozwiązywaniu złożonych błędów w kodzie, dzieląc je na mniejsze części. Dodatkowo możesz zdefiniować dowolną liczbę CTE . Poniżej znajduje się przykład wielu CTE .
W tym przykładzie mamy pierwszy CTE , którym jest C1 . Stamtąd wybraliśmy ROK(data zamówienia) i utworzyliśmy 2 kolumny, które są rok zamówienia i custid z tabeli Sales.Orders .
Dla drugiego CTE o nazwie C2 wybraliśmy rok zamówienia i zebraliśmy liczbę klientów za pomocą polecenia COUNT . Następnie nazwaliśmy go numcusts z C1 . Warunek WHERE został również dodany w C2 , aby wybrać tylko rok zamówienia większy niż 2015 . Następnie pogrupowaliśmy je według orderyear .
Następnie wybraliśmy orderyear i numcusts z C2 . Następnie dodaliśmy warunek WHERE , aby wybrać tylko liczbę klientów większą niż 500 .
Podsumowując, ten kod służy do wybierania klientów, których rok zamówienia jest większy niż 2015 i wybierania tylko liczby klientów, która jest większa niż 500 na podstawie warunku rok zamówienia .
Używanie wielu CTE do rozwiązywania złożonych kodów
Następnie pokażę więcej przykładów, aby dodatkowo podkreślić użycie CTE w rozwiązywaniu problemów z dużym zestawem danych. Oto kolejny przykład wielu CTE .
Pamiętaj, że możesz nazywać CTE tak, jak chcesz, ale na tym blogu używamy C1 , C2 , C3 itd., Aby łatwo zidentyfikować i zrozumieć, w jaki sposób wykorzystujemy je w naszych przykładach.
Wracając do przykładu, utworzyliśmy C1 , aby wybrać z tabeli Sales.SalesOrderDetails tylko sprzedaż, w której ilość zamówienia jest większa niż 5 .
Następnie w C2 wykorzystaliśmy dane przechowywane w C1 do przyłączenia produktu na podstawie Product.ID i pogrupowaliśmy je według nazwy produktu (p.Name) i koloru produktu (p.Color) .
Ponieważ zadeklarowaliśmy warunek w C1 , zgrupujemy nazwę produktu i kolor produktu w C2 tylko dla zamówień, w których ilość zamówienia (OrderQty) jest większa niż 5 .
Następnie użyjemy polecenia, aby wybrać wszystkie dane z C2 z ilością zamówienia większą niż 1000 .
W celu rozwiązywania problemów możesz po prostu wybrać każdy z utworzonych CTE , aby sprawdzić, czy pokazuje prawidłowe dane. Zapoznaj się z poniższymi przykładami.
W przypadku C1 są wyświetlane wszystkie dane z tabeli Sales.SalesOrderDetail z ilością zamówienia większą niż 5 .
Następnie C2 pokazuje dane wyjściowe ilości zamówienia, które są pogrupowane według nazwy produktu i koloru z C1 . W C2 możemy zobaczyć kolumnę orderqty , ale tak naprawdę nie mamy jej w C2 , ponieważ jest to tylko kolumna obliczeniowa, którą wygenerowaliśmy z C1 . Stąd możemy zacząć używać dowolnego warunku w kolumnie orderqty i przeprowadzić rozwiązywanie problemów.
Teraz możesz zobaczyć, jak wiele CTE może nam pomóc w rozwiązywaniu błędów w złożonych kodach, przechowując je w CTE i rozpoczynając rozwiązywanie problemów bez uszkadzania rzeczywistego kodu.
Używanie CTE z instrukcją przypadku
Weźmy inny przykład z tym samym kontekstem, aby pokazać, jak możemy wykorzystać wiele CTE do rozwiązywania problemów ze złożonymi kodami.
W tym przypadku użyjemy instrukcji CASE , która utworzy kolumnę Product Category z wynikami opartymi na zagregowanej ilości orderqty z C2 .
Jak wspomniano wcześniej, nie mieliśmy zamówienia w pierwszym CTE ani kategorii produktu , ale wykorzystaliśmy tabele pośrednie do obliczenia i wykonania różnych obliczeń.
W następnym przykładzie utworzymy zagregowaną kwotę na podstawie kategorii produktów utworzonej w poprzednim przykładzie. Ale aby to zrobić, umieścimy instrukcję CASE dla kategorii produktów w trzecim CTE , którym jest C3 .
Zanim przejdziemy dalej, sprawdźmy wyjście C3 , dodając „ SELECT * FROM C3 ” poniżej C3 .
W C3 możemy zobaczyć kolumny ProductName , Color , orderqty i Product Category . Od tego momentu możemy rozpocząć agregację na podstawie kategorii produktów . Zróbmy to za pomocą następującego polecenia poniżej C3 .
Poniższy przykład to wynik po utworzeniu zagregowanej kwoty za pomocą powyższego polecenia.
Początkowo nie mieliśmy kolumn Product Category i orderqty , ale jesteśmy w stanie wygenerować przykładowe dane wyjściowe na podstawie tych kolumn, wykorzystując wiele CTE .
W tym momencie widać, że z pomocą CTE możemy zrobić wszystko w bardziej efektywnej pracy z naszymi kodami.
SQL Temp Tables and Views for LuckyTemplates
Filtr użytkownika w SQL przy użyciu IN, NOT IN, LIKE i NOT LIKE
Wyodrębnianie danych SQL przy użyciu OFFSET i FETCH
Wniosek
W tym samouczku nauczyłeś się prawidłowej składni podczas tworzenia typowych wyrażeń tabel SQL oraz nauczyłeś się wykorzystywać wiele CTE w rozwiązywaniu problemów ze złożonymi kodami, izolując małe części danych i przechowując je w danym CTE .
Ucząc się tego, masz teraz możliwość wydajniejszego debugowania kodu. Pamiętaj, że możesz użyć dowolnej nazwy dla CTE i nie możesz używać ani wywoływać żadnego CTE , dopóki nie zostanie utworzone. Po zapoznaniu się z CTE możesz uważać się za średniozaawansowanego użytkownika SQL .
Jeśli chcesz dowiedzieć się więcej na ten temat i inne powiązane treści, z pewnością możesz sprawdzić listę odpowiednich linków poniżej.
Wszystkiego najlepszego,
Hafiz
W tym samouczku omówimy pakiet dplyr, który umożliwia sortowanie, filtrowanie, dodawanie i zmianę nazw kolumn w języku R.
Odkryj różnorodne funkcje zbierania, które można wykorzystać w Power Automate. Zdobądź praktyczne informacje o funkcjach tablicowych i ich zastosowaniu.
Z tego samouczka dowiesz się, jak ocenić wydajność kodów DAX przy użyciu opcji Uruchom test porównawczy w DAX Studio.
Czym jest self w Pythonie: przykłady z życia wzięte
Dowiesz się, jak zapisywać i ładować obiekty z pliku .rds w R. Ten blog będzie również omawiał sposób importowania obiektów z R do LuckyTemplates.
Z tego samouczka języka kodowania DAX dowiesz się, jak używać funkcji GENERUJ i jak dynamicznie zmieniać tytuł miary.
W tym samouczku omówiono sposób korzystania z techniki wielowątkowych wizualizacji dynamicznych w celu tworzenia szczegółowych informacji na podstawie dynamicznych wizualizacji danych w raportach.
W tym artykule omówię kontekst filtra. Kontekst filtrowania to jeden z głównych tematów, z którym każdy użytkownik usługi LuckyTemplates powinien zapoznać się na początku.
Chcę pokazać, jak usługa online LuckyTemplates Apps może pomóc w zarządzaniu różnymi raportami i spostrzeżeniami generowanymi z różnych źródeł.
Dowiedz się, jak obliczyć zmiany marży zysku przy użyciu technik, takich jak rozgałęzianie miar i łączenie formuł języka DAX w usłudze LuckyTemplates.