Započnite s ispitivanjem podataka s ovim jednostavnim jezikom upita

Rad s podacima postaje sve važnija vještina na modernom radnom mjestu.

Podaci više nisu domena analitičara i softverskih inženjera. Uz današnju tehnologiju svatko može raditi s podacima kako bi analizirao trendove i informirao svoje donošenje odluka.

Temeljni koncept pri radu s podacima jest 'postavljanje upita' prema skupu podataka. To je doslovno postavljanje pitanja o skupu podataka. Jezik upita je softverski jezik koji pruža sintaksu postavljanja takvih pitanja.

Ako nemate iskustva s pisanjem upita, oni mogu izgledati pomalo zastrašujuće. Međutim, uz malo vježbe, možete svladati osnove.

Evo kako možete započeti s Google tablicama.

Jezik upita Google API-ja za vizualizaciju

Možda već koristite Google tablice za veći dio svog svakodnevnog posla. Možda vam je poznato kako ga upotrebljavate za generiranje grafikona i grafikona.

Jezik upita Google API-ja za vizualizaciju čarolija je koja djeluje iza kulisa kako bi to omogućila.

Ali jeste li znali da možete pristupiti ovom jeziku putem QUERY()funkcije? To može biti moćan alat za rad s velikim listovima podataka.

Postoji mnogo sličnosti između jezika upita i SQL-a.

U oba slučaja definirate skup podataka stupaca i redaka i odabirom različitih stupaca i redaka određujete različite kriterije i uvjete.

U ovom će članku primjeri podataka doći iz velike CSV datoteke koja sadrži međunarodne nogometne rezultate između 1872. i 2019. Podatke možete preuzeti s Kagglea.

U novi Google Sheet prenesite CSV datoteku. Sve podatke možete odabrati pomoću Ctrl + A (ili Cmd + A na Macu).

Na vrpci izbornika odaberite Podaci> Imenovani rasponi ... i nazovite odabrani raspon nekako poput "podataka". To će olakšati rad s.

Sada ste spremni započeti s ispitivanjem podataka. Izradite novu karticu u proračunskoj tablici, a u ćeliji A1 izradite novu QUERY()formulu.

Nabavite sve utakmice Engleske

Ovaj prvi upit pronalazi sve retke u skupu podataka gdje je Engleska ili domaća ili gostujuća momčad.

QUERY()Formula traje najmanje dva argumente. Prvi je imenovani raspon, koji će biti upit podataka. Drugi je niz koji sadrži stvarni upit.

=QUERY(data, "SELECT * WHERE B = 'England' OR C = 'England'")

Razdvojimo ovo.

SELECT *traži da vrati sve stupce u skupu podataka. Da želite samo stupce A, B i C, napisali biste SELECT A, B, C.

Dalje, uključujete filtar da biste pronašli samo retke u kojima stupac B ili stupac C sadrže tim 'England'. Obavezno upotrijebite jednostruke navodnike za nizove unutar upita. Dvostruke navodnike koriste se za otvaranje i zatvaranje samog upita.

Ova formula vraća sve redove u kojima je igrala Engleska. Ako želite potražiti drugi tim, jednostavno promijenite stanje u filtru.

Broji sve prijateljske utakmice

Dalje, izbrojimo koliko je prijateljskih utakmica u skupu podataka.

=QUERY(data, "SELECT COUNT(A) WHERE F = 'Friendly'")

Ovo koristi COUNT()funkciju jezika upita . Ovo je primjer agregatne funkcije. Skupne funkcije sažimaju mnoge retke u jedan.

Na primjer, u ovom skupu podataka postoji 16.716 redaka u kojima je stupac F jednak 'Friendly'. Umjesto da vrati sve ove retke, upit vraća jedan redak - koji ih umjesto toga broji.

Drugi primjeri zbirnih funkcija uključuju MAX(), MIN()i AVG(). Umjesto da vrati sve retke koji odgovaraju upitu, on umjesto toga pronalazi njihove maksimalne, minimalne i prosječne vrijednosti.

Skupina po turniru

Skupne funkcije mogu učiniti više ako GROUP BYuz njih koristite naredbu. Ovaj upit otkriva koliko je utakmica odigrano za svaku vrstu turnira.

=QUERY(data, "SELECT F, COUNT(A) GROUP BY F")

Ovaj upit grupira podatke postavljene prema svakoj od vrijednosti u stupcu F. Zatim broji koliko redaka ima u svakoj grupi.

Možete koristiti GROUP BYna više stupaca. Na primjer, da biste pronašli koliko je utakmica odigrano u svakoj zemlji po turniru, upotrijebite upit u nastavku:

=QUERY(data, "SELECT H, F, COUNT(A) GROUP BY H, F")

Pokušajmo s nekim naprednijim filtriranjem.

Nabavite sve utakmice Engleske i Njemačke

Možete odrediti složeniji filter logiku pomoću ANDte ORriječi. Radi čitljivosti može vam pomoći koristiti zagrade oko svakog dijela filtra.

Na primjer, da biste pronašli sve utakmice između Engleske i Njemačke:

=QUERY(data, "SELECT * WHERE (B = 'England' AND C = 'Germany') OR (C = 'England' AND B ='Germany')")

Ovaj filtar ima dva kriterija - jedan gdje je Engleska domaća momčad, a Njemačka nema, a drugi obrnuto.

Korištenje provjere valjanosti podataka olakšava odabir bilo koja dva tima u skupu podataka.

Zatim možete napisati upit koji koristi vrijednosti različitih stanica u svom filtru. Ne zaboravite upotrijebiti jednostruke navodnike za identificiranje nizova unutar upita, a dvostruke navodnike za otvaranje i zatvaranje različitih dijelova upita.

=QUERY(data, "SELECT * WHERE (B = '"&B1&"' AND C = '"&B2&"') OR (C = '"&B1&"' AND B ='"&B2&"')")

Tražim trendove

Skupne funkcije i filtri čine moćne alate kada se koriste u kombinaciji. Jednom kada se upoznate s njihovim načinom rada, možete započeti potragu za svim vrstama zanimljivih trendova u svom skupu podataka.

Na primjer, upit u nastavku pronalazi prosječne ciljeve po utakmici svake godine od 1900. godine.

=QUERY(data, "SELECT YEAR(A), AVG(D) + AVG(E) WHERE YEAR(A) >= 1900 GROUP BY YEAR(A)")

Ako rezultat upita nacrtate u linijski grafikon, s vremenom možete odmah početi vidjeti trendove.

Poredak rezultata

Ponekad vas ne zanima pronalaženje svih odgovarajućih redaka u skupu podataka. Često ćete ih htjeti razvrstati prema nekim kriterijima. Možda želite pronaći samo prvih deset zapisa.

Ovaj upit pronalazi deset najboljih rezultata s najviše bodova u skupu podataka.

=QUERY(data, "SELECT * ORDER BY (D+E) DESC LIMIT 10")

Primijetite ORDER BYizjavu. Ovo sortira retke prema navedenim stupcima. Ovdje upit sortira izlaz prema broju postignutih golova u igri.

DESCKljučna riječ pokazuje razvrstati u silaznom redoslijedu (The ASCključna bi ih razvrstava uzlaznim redoslijedom).

Napokon, LIMITključna riječ ograničava izlaz na zadani broj redaka (u ovom slučaju deset).

Izgleda da je u Oceaniji bilo nekih prilično jednostranih igara!

Koji su gradovi ugostili najviše utakmica Svjetskog kupa?

A sada još jedan posljednji primjer da sve spojimo i pokrenemo maštu.

Ovaj upit pronalazi deset najboljih gradova koji su bili domaćini najviše utakmica FIFA-inog svjetskog kupa.

=QUERY(data, "SELECT G, COUNT(A) WHERE F = 'FIFA World Cup' GROUP BY G ORDER BY COUNT(A) DESC LIMIT 10")

Sad je tvoj red

Nadam se da vam je ovaj članak bio koristan. Ako vam je logika u svakom primjeru ugodna, tada ste spremni isprobati pravi SQL.

Ovo će predstaviti koncepte kao što su PRIDRUŽIVANJE, ugniježđeni upiti i funkcije PROZORA. Kad ih savladate, vaša moć manipulacije podacima proći će kroz krov.

Postoji niz mjesta za početak učenja SQL-a. Isprobajte interaktivne primjere na w3schools!