Kezdje el lekérdezni az adatokat ezzel az egyszerű Lekérdezési nyelvvel

Az adatokkal való munka egyre fontosabb készséggé válik a modern munkahelyen.

Az adatok már nem az elemzők és a szoftvermérnökök területei. A mai technológiával bárki dolgozhat az adatokkal a trendek elemzésére és a döntéshozatal tájékoztatására.

Alapvető fogalom az adatokkal való munka során egy adatkészlet „lekérdezése”. Ennek célja, hogy szó szerint kérdéseket tegyünk fel egy adatsorral kapcsolatban. A lekérdezési nyelv egy szoftvernyelv, amely szintaxist biztosít az ilyen kérdések feltevéséhez.

Ha nincs tapasztalata a lekérdezések írásában, kissé félelmetesnek tűnhetnek. Kis gyakorlással azonban elsajátíthatja az alapokat.

Így kezdheti el a Google Táblázatok használatát.

Google Visualization API lekérdezési nyelv

Előfordulhat, hogy napi munkája nagy részében már használja a Google Táblázatokat. Talán Ön ismeri diagramok és grafikonok létrehozását.

A Google Visualization API Query Language az a varázslat, amely a kulisszák mögött működik, hogy ezt lehetővé tegye.

De tudta, hogy a QUERY()funkción keresztül hozzáférhet ehhez a nyelvhez ? Hatalmas eszköz lehet a nagy adatlapokkal történő munkavégzéshez.

Nagyon sok hasonlóság van a lekérdezés nyelve és az SQL között.

Mindkét esetben megad egy oszlopokból és sorokból álló adatsort, és különböző feltételeket és feltételeket megadva különböző oszlopokat és sorokat választ.

Ebben a cikkben a példaadatok egy nagyméretű CSV fájlból származnak, amely 1872 és 2019 között nemzetközi futballeredményeket tartalmaz. Az adatokat letöltheti a Kaggle oldalról.

Töltse fel a CSV-fájlt egy új Google Sheet-be. Az összes adatot kiválaszthatja a Ctrl + A (vagy a Cmd + A Mac gépen) gombbal.

A menüszalagon válassza az Adatok> Megnevezett tartományok ... lehetőséget, és hívja a kijelölt tartományt valami hasonlóként: „adatok”. Ez megkönnyíti a munkát.

Most már készen áll az adatok lekérdezésére. Hozzon létre egy új lapot a táblázatban, és az A1 cellában hozzon létre egy új QUERY()képletet.

Szerezd meg az összes angliai mérkőzést

Ez az első lekérdezés megtalálja az adatsor összes sorát, ahol Anglia vagy a hazai csapat, vagy a vendég csapat.

A QUERY()képlet legalább két érvet tartalmaz. Az első a megnevezett tartomány, amely a lekérdezett adatkészlet lesz. A második egy karaktersorozat, amely a tényleges lekérdezést tartalmazza.

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

Ezt bontsuk le.

SELECT *kéri, hogy adja vissza az adatsor összes oszlopát. Ha csak az A, B és C oszlopokat szeretné, akkor írna SELECT A, B, C.

Ezután hozzáad egy szűrőt, hogy csak azokat a sorokat keresse meg, ahol a B vagy a C oszlop tartalmazza a csapatot 'England'. Győződjön meg arról, hogy egyetlen idézőjelet használ a karakterláncokhoz a lekérdezésen belül. Dupla idézőjeleket használnak a lekérdezés megnyitására és bezárására.

Ez a képlet adja vissza az összes sort, ahol Anglia játszott. Ha másik csapatot szeretne keresni, egyszerűen módosítsa a szűrő állapotát.

Számoljon meg minden barátságos mérkőzést

Ezután számoljuk meg, hogy hány barátságos mérkőzés van az adatsorban.

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

Ez a Query Language COUNT()funkcióját használja. Ez egy példa egy összesített függvényre. Az összesített függvények sok sort egybe foglalnak.

Például ebben az adatsorban 16 716 sor található, ahol az F oszlop megegyezik 'Friendly'. Ahelyett, hogy mindezeket a sorokat visszaadná, a lekérdezés egyetlen sort ad vissza - ami ezeket számlálja.

Az aggregált függvények további példái a következők MAX(), MIN()és AVG(). Ahelyett, hogy a lekérdezésnek megfelelő összes sort visszaadná, megkeresi a maximális, a minimális és az átlagos értéket.

Csoportosítás versenyenként

Az összesített függvények többet tehetnek, ha egy GROUP BYutasítást használnak mellettük. Ez a lekérdezés megtudja, hogy hány mérkőzést játszottak le az egyes versenytípusok.

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

Ez a lekérdezés az F. oszlopban szereplő értékek szerint csoportosítja az adatsort. Ezután megszámolja, hogy az egyes csoportokban hány sor van.

GROUP BYTöbb oszlopban is használható . Például az alábbi lekérdezéssel megtudhatja, hogy az egyes országokban hány mérkőzést játszottak bajnokság szerint:

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

Próbálkozzunk néhány fejlettebb szűréssel.

Szerezd meg az összes Anglia vs Németország mérkőzést

A ANDés ORkulcsszavak segítségével összetettebb szűrőlogikát adhat meg . Az olvashatóság érdekében segíthet zárójelek használata a szűrő minden része körül.

Például, hogy megtalálja az összes mérkőzést Anglia és Németország között:

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

Ennek a szűrőnek két kritériuma van - az egyik, ahol Anglia a hazai csapat, Németország pedig idegen, a másik pedig fordítva.

Az adatok ellenőrzése megkönnyíti bármelyik két csapat kiválasztását az adatkészletből.

Ezután írhat egy lekérdezést, amely a szűrő különböző celláinak értékeit használja fel. Ne felejtsen el egyetlen idézőjeleket használni a lekérdezésen belüli karakterláncok azonosításához, és dupla idézőjeleket a lekérdezés különböző részeinek megnyitásához és bezárásához.

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

Trendeket keres

Az összesített funkciók és szűrők hatékony eszközöket jelentenek, ha együtt használják őket. Ha jól érzi magát a működésükben, elkezdheti keresni az adatkészlet mindenféle érdekes trendjét.

Például az alábbi lekérdezés megkeresi a játékonkénti átlagos gólokat, minden évre 1900 óta.

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

Ha a lekérdezés eredményét vonaldiagramként ábrázolja, azonnal elkezdheti látni a trendeket az idő múlásával.

Az eredmények rendezése

Néha nem érdekli az összes megfelelő sor megtalálása egy adatkészletben. Gyakran érdemes bizonyos kritériumok szerint rendezni őket. Talán csak az első tíz lemezt szeretné megtalálni.

Ez a lekérdezés megtalálja az első tíz legeredményesebb egyezést az adatkészletben.

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

Figyelje meg az ORDER BYállítást. Ez rendezi a sorokat a megadott oszlopok szerint. Itt a lekérdezés a kimenetet a játékban szerzett gólok száma szerint rendezi.

A DESCkulcsszó azt jelzi, hogy csökkenő sorrendbe kell rendezni (a ASCkulcsszó növekvő sorrendben rendezte volna őket).

Végül a LIMITkulcsszó korlátozza a kimenetet egy adott sorszámra (ebben az esetben tízre).

Úgy tűnik, hogy Óceániában voltak szép egyoldalú játékok!

Mely városok rendezték a legtöbb vb-mérkőzést?

És most egy utolsó példa, hogy mindent összehozzunk és elindítsuk a fantáziát.

Ez a lekérdezés megtalálja az első tíz olyan várost, amely a legtöbb FIFA Világkupa-mérkőzést rendezte.

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

Most te jössz

Remélhetőleg hasznosnak találta ezt a cikket. Ha jól érzi magát az egyes példák logikájában, akkor készen áll az igazi SQL kipróbálására.

Ez olyan fogalmakat mutat be, mint a JOINS, a beágyazott lekérdezések és a WINDOW függvények. Amikor ezeket elsajátítja, az adatok manipulálásának képessége átmegy a tetőn.

Számos helyen lehet kezdeni az SQL elsajátításával. Próbálja ki az interaktív példákat a w3schools webhelyen!