Pradėkite duomenų paiešką naudodami šią paprastą užklausos kalbą

Darbas su duomenimis tampa vis svarbesniu įgūdžiu šiuolaikinėje darbo vietoje.

Duomenys nebėra analitikų ir programinės įrangos inžinierių sritis. Naudodamas šiuolaikines technologijas, kiekvienas gali dirbti su duomenimis, kad analizuotų tendencijas ir informuotų apie savo sprendimų priėmimą.

Pagrindinė sąvoka dirbant su duomenimis yra duomenų rinkinio „užklausa“. Tai pažodžiui užduoti klausimus apie duomenų rinkinį. Užklausos kalba yra programinės įrangos kalba, suteikianti sintaksę klausiant tokių klausimų.

Jei neturite patirties rašant užklausas, jos gali pasirodyti šiek tiek bauginančios. Tačiau turėdami šiek tiek praktikos, galite išmokti pagrindus.

Štai kaip galite pradėti naudotis „Google“ skaičiuoklėmis.

„Google“ vizualizavimo API užklausos kalba

Gali būti, kad jau naudojate „Google“ skaičiuokles daugeliui savo kasdienių darbų. Galbūt esate susipažinęs su jo naudojimu kuriant diagramas ir grafikus.

„Google“ vizualizacijos API užklausų kalba - tai magija, veikianti už kadro, kad tai būtų įmanoma.

Bet ar žinojote, kad naudodamiesi QUERY()funkcija galite pasiekti šią kalbą ? Tai gali būti galingas įrankis dirbant su dideliais duomenų lapais.

Užklausos kalba ir SQL yra labai daug panašumų.

Abiem atvejais nustatote stulpelių ir eilučių duomenų rinkinį ir pasirenkate skirtingus stulpelius ir eilutes, nurodydami įvairius kriterijus ir sąlygas.

Šiame straipsnyje duomenų pavyzdžiai bus gauti iš didelio CSV failo, kuriame yra tarptautinio futbolo rezultatai nuo 1872 iki 2019 m. Duomenis galite atsisiųsti iš „Kaggle“.

Į naują „Google Sheet“ įkelkite CSV failą. Visus duomenis galite pasirinkti naudodami „Ctrl + A“ (arba „Cmd + A“, jei naudojate „Mac“).

Meniu juostoje pasirinkite Duomenys> Pavadinti diapazonai ... ir pavadinkite pasirinktą diapazoną panašiai kaip „duomenys“. Tai palengvins darbą.

Dabar esate pasirengę pradėti ieškoti duomenų. Skaičiuoklėje sukurkite naują skirtuką, o A1 langelyje - naują QUERY()formulę.

Gaukite visas Anglijos rungtynes

Ši pirmoji užklausa suranda visas duomenų rinkinio eilutes, kuriose Anglija yra namų komanda arba svečių komanda.

QUERY()Formulė trunka ne mažiau kaip du argumentus. Pirmasis yra įvardytas diapazonas, kuris bus užklausiamas duomenų rinkinys. Antroji yra eilutė, kurioje yra tikroji užklausa.

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

Suskaidykime tai.

SELECT *prašo grąžinti visus duomenų rinkinio stulpelius. Jei norėtumėte tik A, B ir C stulpelių, parašytumėte SELECT A, B, C.

Tada įtraukite filtrą, kad rastumėte tik tas eilutes, kuriose B arba C stulpeliuose yra komanda 'England'. Užklausoje esančiose eilutėse būtinai naudokite kabutes. Dvigubos kabutės naudojamos pačiai užklausai atidaryti ir uždaryti.

Ši formulė pateikia visas eiles, kuriose žaidė Anglija. Jei norite ieškoti kitos komandos, tiesiog pakeiskite filtro sąlygą.

Suskaičiuokite visas draugiškas rungtynes

Paskui suskaičiuokime, kiek draugiškų rungtynių yra duomenų rinkinyje.

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

Tai naudoja užklausos kalbos COUNT()funkciją. Tai yra suvestinės funkcijos pavyzdys. Suvestinės funkcijos apibendrina daugybę eilučių į vieną.

Pavyzdžiui, šiame duomenų rinkinyje yra 16 716 eilučių, kur F stulpelis yra lygus 'Friendly'. Užuot grąžinus visas šias eilutes, užklausa pateikia vieną eilutę - kuri jas skaičiuoja.

Kiti pavyzdžiai visuminės funkcijos apima MAX(), MIN()ir AVG(). Užuot grąžinęs visas eilutes, atitinkančias užklausą, vietoj jų surandamos maksimalios, mažiausios ir vidutinės vertės.

Grupė pagal turnyrą

Apibendrintos funkcijos gali padaryti daugiau, jei GROUP BYšalia jų naudojate teiginį. Ši užklausa sužino, kiek rungtynių buvo sužaista pagal kiekvieną turnyro tipą.

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

Ši užklausa grupuoja duomenų rinkinį pagal kiekvieną F stulpelio reikšmę. Tada suskaičiuojama, kiek eilučių yra kiekvienoje grupėje.

Galite naudoti GROUP BYdaugiau nei viename stulpelyje. Pvz., Norėdami sužinoti, kiek kiekvienoje šalyje buvo sužaistų rungtynių pagal turnyrus, naudokite toliau pateiktą užklausą:

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

Pabandykime pažangesnį filtravimą.

Gaukite visas Anglijos ir Vokietijos rungtynes

Naudodami ANDir ORraktinius žodžius, galite nurodyti sudėtingesnę filtro logiką . Kad būtų lengviau įskaityti, aplink kiekvieną filtro dalį gali būti naudojami skliaustai.

Pavyzdžiui, norėdami rasti visas Anglijos ir Vokietijos rungtynes:

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

Šis filtras turi du kriterijus - vieną, kur Anglija yra namų komanda, o Vokietija - išvykoje, ir kitą atvirkščiai.

Naudojant duomenų tikrinimą, lengva pasirinkti dvi komandas iš duomenų rinkinio.

Tada galite parašyti užklausą, kurios filtre naudojamos skirtingų langelių vertės. Nepamirškite naudoti vienkartinių kabučių atpažinti eilutes užklausoje ir dvigubas kabutes, kad atidarytumėte ir uždarytumėte skirtingus užklausos elementus.

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

Ieško tendencijų

Sudėtinės funkcijos ir filtrai yra galingi įrankiai, kai naudojami kartu. Kai jums patiks, kaip jie veikia, galite pradėti ieškoti visų įdomių tendencijų savo duomenų rinkinyje.

Pvz., Žemiau pateiktoje užklausoje nurodomi kiekvienų metų vidutiniai tikslai per rungtynes ​​nuo 1900 m.

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

Jei braižote užklausos rezultatą kaip linijinę diagramą, galite iš karto pradėti matyti tendencijas laikui bėgant.

Rezultatų užsakymas

Kartais jums neįdomu rasti visas atitinkamas duomenų rinkinio eilutes. Dažnai norėsite juos rūšiuoti pagal tam tikrus kriterijus. Galbūt jūs norite rasti tik dešimt geriausių įrašų.

Ši užklausa nustato dešimt geriausių rezultatyviausių atitikmenų duomenų rinkinyje.

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

Atkreipkite dėmesį į ORDER BYteiginį. Tai rūšiuoja eilutes pagal nurodytus stulpelius. Čia užklausa surūšiuoja rezultatą pagal žaidime įmuštų įvarčių skaičių.

DESCRaktažodis rodo rūšiuoti mažėjančia tvarka (toliau ASCraktažodis būtų rūšiuojamos jų didėjimo tvarka).

Galiausiai LIMITraktinis žodis apriboja išvestį iki nurodyto eilučių skaičiaus (šiuo atveju dešimties).

Panašu, kad Okeanijoje buvo keletas gana vienpusių žaidimų!

Kurie miestai surengė daugiausiai pasaulio taurės rungtynių?

Dabar pateikiu paskutinį pavyzdį, kad viskas būtų sujungta ir jūsų fantazija pasisektų.

Ši užklausa rodo dešimt miestų, surengusių daugiausiai FIFA pasaulio taurės varžybų.

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

Dabar tavo eilė

Tikimės, kad šis straipsnis jums buvo naudingas. Jei jums patinka kiekvieno pavyzdžio logika, esate pasirengę išbandyti tikrą SQL.

Tai pristatys tokias sąvokas kaip JOINS, įdėtos užklausos ir WINDOW funkcijos. Kai juos įvaldysite, jūsų galia manipuliuoti duomenimis eis per stogą.

Yra daugybė vietų, nuo kurių reikia pradėti mokytis SQL. Išbandykite interaktyvius pavyzdžius w3schools!