Zdjęcie autora
W świecie danych SQL nadal jest językiem używanym do interakcji z bazami danych.
Do dziś jest to jeden z najczęściej używanych języków do obsługi danych i nadal uważany jest za niezbędny element każdego dobrego specjalisty ds. danych.
Jednak każdy, kto pracował ze złożonymi zapytaniami SQL, wie, że mogą one szybko zamienić się w nieporęczne bestie – trudne do odczytania, utrzymania i ponownego użycia.
Dlatego dzisiaj nie wystarczy znać SQL, trzeba umieć konstruować zapytania. I to właściwie jest rodzaj sztuki.
W tym miejscu do gry wchodzą wyrażenia Common Table Expressions (CTE), przekształcające sztukę pisania zapytań w bardziej uporządkowane i przystępne rzemiosło.
Odkryjmy więc razem, jak kodować zapytania czytelne i nadające się do ponownego użycia.
Jeśli zastanawiasz się, czym jest CTE, jesteś we właściwym artykule.
Wspólne wyrażenie tabelowe (CTE) to tymczasowy zestaw wyników zdefiniowany w zakresie wykonania pojedynczej instrukcji SQL.
Są to tabele tymczasowe, do których można się wielokrotnie odwoływać w ramach jednego zapytania i zazwyczaj służą do uproszczenia złożonych złączeń i podzapytań, a ostatecznym celem jest zwiększenie czytelności i organizacji kodu SQL.
Są więc potężnym narzędziem do dzielenia złożonych zapytań na prostsze części.
Oto dlaczego warto rozważyć użycie CTE:
- Modułowość: Możesz podzielić złożoną logikę na czytelne fragmenty.
- Czytelność: Ułatwia to zrozumienie przepływu zapytań SQL.
- Możliwość ponownego wykorzystania: Do CTE można odwoływać się wielokrotnie w jednym zapytaniu, co pozwala uniknąć powtórzeń.
Magia zaczyna się od klauzuli WITH, która poprzedza główne zapytanie i definiuje różne tabele tymczasowe (CTE) z aliasami.
Dlatego zawsze musimy rozpocząć nasze zapytanie od polecenia „WITH”, aby rozpocząć definiowanie własnych CTE. Używając CTE, możemy podzielić złożone zapytanie SQL na:
– Małe tabele czasowe, które obliczają powiązane zmienne.
– Tabela końcowa, która jako wynik przyjmuje tylko te zmienne, które chcemy.
I właśnie takiego MODUŁOWEGO podejścia chcemy w dowolnym kodzie!
Zdjęcie autora
Zatem użycie CTE w naszych zapytaniach pozwala nam:
– Wykonaj tabelę tymczasową RAZ i odwołuj się do niej WIELOkrotnie.
– Popraw czytelność i uprość złożoną logikę.
– Promuj możliwość ponownego użycia kodu i konstrukcję modułową.
Aby lepiej to zrozumieć, możemy posłużyć się praktycznym przykładem ofert Airbnb w Barcelonie.
Wyobraź sobie, że chcemy przeanalizować skuteczność ofert według okolicy i porównać ją z ogólną wydajnością miasta. Musiałbyś zebrać informacje o dzielnicach, poszczególnych mieszkaniach, gospodarzach i cenach.
Aby to zilustrować, użyjemy WewnątrzAirbnb tabela Barcelony, która wygląda następująco:
Naiwne podejście może prowadzić do utworzenia zagnieżdżonych podzapytań, które szybko staną się koszmarem konserwacyjnym, takim jak ten:
Kod autora
Zamiast tego możemy wykorzystać CTE do podzielenia naszego zapytania na logiczne sekcje, z których każda definiuje element układanki.
- Dane sąsiedzkie: Utwórz CTE, aby podsumować dane według sąsiedztwa.
- Informacje o apartamencie i gospodarzu: Zdefiniuj CTE, aby uzyskać szczegółowe informacje o apartamentach i gospodarzach.
- Wskaźniki ogólnomiejskie: Kolejny CTE do gromadzenia statystyk na poziomie miasta dla porównania.
- Montaż końcowy: Połącz współczynniki CTE w końcowej instrukcji SELECT, aby przedstawić dane w sposób spójny.
Zdjęcie autora
I skończylibyśmy z następującym zapytaniem:
Kod autora
Używając CTE, zamieniamy potencjalnie monstrualne pojedyncze zapytanie w zorganizowany zestaw modułów danych. To modułowe podejście sprawia, że kod SQL jest bardziej intuicyjny i można go dostosować do zmian.
Jeśli pojawią się nowe wymagania, możesz dostosować lub dodać CTE bez konieczności zmiany całego zapytania.
Po ustaleniu współczynników CTE można je ponownie wykorzystać do przeprowadzenia analizy porównawczej. Na przykład, jeśli chcesz porównać dane dotyczące okolicy ze wskaźnikami obejmującymi całe miasto, możesz odwołać się do swoich współczynników CTE w serii operacji JOIN.
To nie tylko oszczędza czas, ale także zapewnia wydajność kodu, ponieważ nie będziesz musiał dwukrotnie powtarzać tego samego zapytania!
CTE są świadectwem zasady, że niewielka struktura ma duże znaczenie w programowaniu. Przyjmując CTE, możesz pisać jaśniejsze, łatwiejsze w utrzymaniu i nadające się do ponownego użycia zapytania SQL.
Usprawnia proces tworzenia zapytań i ułatwia przekazywanie innym złożonej logiki wyszukiwania danych.
Pamiętaj, że następnym razem, gdy będziesz miał zamiar rozpocząć pisanie zagnieżdżonego potwora podzapytań z wieloma złączami, rozważ rozbicie go za pomocą współczynników CTE.
Twoje przyszłe ja – i każdy, kto może przeczytać Twój kod – będzie Ci wdzięczny.
Józefa Ferrera jest inżynierem analitykiem z Barcelony. Ukończył inżynierię fizyki i obecnie pracuje w dziedzinie Data Science stosowanej do mobilności ludzi. Jest twórcą treści w niepełnym wymiarze godzin, koncentrującym się na analizie danych i technologii. Możesz skontaktować się z nim na LinkedIn, Twitter or Średni.
- Dystrybucja treści i PR oparta na SEO. Uzyskaj wzmocnienie już dziś.
- PlatoData.Network Pionowe generatywne AI. Wzmocnij się. Dostęp tutaj.
- PlatoAiStream. Inteligencja Web3. Wiedza wzmocniona. Dostęp tutaj.
- PlatonESG. Węgiel Czysta technologia, Energia, Środowisko, Słoneczny, Gospodarowanie odpadami. Dostęp tutaj.
- Platon Zdrowie. Inteligencja w zakresie biotechnologii i badań klinicznych. Dostęp tutaj.
- Źródło: https://www.kdnuggets.com/sql-simplified-crafting-modular-and-understandable-queries-with-ctes?utm_source=rss&utm_medium=rss&utm_campaign=sql-simplified-crafting-modular-and-understandable-queries-with-ctes
- :ma
- :Jest
- :nie
- :Gdzie
- $W GÓRĘ
- a
- O nas
- faktycznie
- Dodaj
- dostosować
- Przyjęcie
- przed
- Airbnb
- pozwala
- również
- zawsze
- an
- analiza
- analityka
- w czasie rzeczywistym sprawiają,
- i
- Inne
- każdy
- ktoś
- mieszkanie
- stosowany
- podejście
- przystępny
- SĄ
- Sztuka
- artykuł
- AS
- Montaż
- At
- unikając
- Barcelona
- BE
- stają się
- Ulepsz Swój
- przerwa
- Przełamując
- ale
- by
- CAN
- Zmiany
- jaśniejsze
- kod
- połączyć
- jak
- wspólny
- komunikować
- porównać
- porównanie
- kompleks
- obliczać
- Rozważać
- za
- skontaktuj się
- zawartość
- rzemiosło
- Stwórz
- twórca
- Obecnie
- dane
- nauka danych
- Bazy danych
- sprawa
- zdefiniowane
- Definiuje
- definiowanie
- Wnętrze
- detale
- oprogramowania
- różne
- odkryj
- na dół
- łatwiej
- wydajny
- więcej
- zaokrętować
- wyłaniać się
- zakończenia
- inżynier
- Inżynieria
- dość
- Cały
- ustanowiony
- przykład
- wykonać
- egzekucja
- wyrażenie
- wyrażeń
- pole
- finał
- Znajdź
- pływ
- koncentruje
- następujący
- następujący sposób
- W razie zamówieenia projektu
- od
- przyszłość
- zbierać
- cel
- Goes
- dobry
- Have
- he
- go
- gospodarz
- gospodarze
- W jaki sposób
- How To
- http
- HTTPS
- człowiek
- if
- podnieść
- in
- wzrastający
- indywidualny
- Informacja
- przykład
- interakcji
- najnowszych
- intuicyjny
- IT
- przystąpić
- Łączy
- jpg
- Knuggety
- Wiedzieć
- wie
- Języki
- prowadzić
- lubić
- ofert
- mało
- logika
- logiczny
- długo
- WYGLĄD
- magia
- Główny
- utrzymać
- Utrzymywane w utrzymaniu
- konserwacja
- WYKONUJE
- wiele
- Metryka
- może
- mobilność
- Modułowa
- Moduły
- jeszcze
- większość
- wielokrotność
- Must-have
- Potrzebować
- Nowości
- Następny
- of
- on
- pewnego razu
- ONE
- tylko
- operacje
- or
- zamówienie
- organizacja
- Zorganizowany
- Pozostałe
- ludzkiej,
- na zewnątrz
- wydajność
- ogólny
- własny
- strony
- wykonać
- jest gwarancją najlepszej jakości, które mogą dostarczyć Ci Twoje monitory,
- Fizyka
- kawałek
- plato
- Analiza danych Platona
- PlatoDane
- Grać
- potencjalnie
- mocny
- Praktyczny
- precyzyjnie
- teraźniejszość
- wycena
- zasada
- wygląda tak
- profesjonalny
- Programowanie
- promować
- puzzle
- zapytania
- szybko
- Czytaj
- odniesienie
- odwołanie
- związane z
- powtarzać
- wymagania
- dalsze
- wyszukiwanie
- wielokrotnego użytku
- ponownie
- prawo
- taki sam
- nauka
- Nauka i technika
- zakres
- wybierać
- Serie
- zestaw
- powinien
- prostsze
- uproszczony
- upraszczać
- pojedynczy
- mały
- SQL
- stojaki
- początek
- Zestawienie sprzedaży
- statystyka
- Nadal
- usprawnień
- Struktura
- zbudowany
- streszczać
- stół
- Brać
- trwa
- Technologia
- tymczasowy
- testament
- podziękować
- że
- Połączenia
- świat
- Im
- one
- to
- tych
- czas
- czasy
- do
- już dziś
- razem
- narzędzie
- transformatorowy
- SKRĘCAĆ
- rodzaj
- zazwyczaj
- ostateczny
- zrozumieć
- zrozumiały
- zrozumienie
- us
- posługiwać się
- używany
- za pomocą
- wykorzystać
- chcieć
- Droga..
- we
- Co
- Co to jest
- który
- KIM
- dlaczego
- będzie
- w
- w ciągu
- bez
- pełen zdumienia
- pracował
- pracujący
- świat
- by
- napisać
- pisanie
- ty
- Twój
- siebie
- zefirnet