SQL-haastattelukysymyksiä kokeneille ammattilaisille

Lähdesolmu: 1586233

SQL-haastattelukysymyksiä kokeneille ammattilaisille
 

esittely

 
Jos olet kokenut datatieteilijä ja etsit työtä, et olisi voinut valita parempaa aikaa. Tällä hetkellä monet vakiintuneet organisaatiot etsivät tietotieteilijöitä, jotka tuntevat taitonsa sisältä ja ulkoa. Suuri kysyntä ei kuitenkaan tarkoita, että voit tai pitäisi hypätä vanteiden läpi ja hakea johtotehtäviä ilman tiettyä taitoa. Palkkaaessaan kokeneita datatieteilijöitä yritykset odottavat heidän työskentelevän vaikeimpienkin tehtävien parissa. Näillä työntekijöillä tulee olla hyvä käsitys kaikkein hämärimmistäkin ominaisuuksista, jotta he voivat käyttää niitä tarvittaessa.

Ei pitäisi olla yllättävää, että kokeneilta datatieteilijöiltä kysytään paljon vaikeampia kysymyksiä haastatellessaan johtavia tehtäviä. Usein pari vuotta yhdessä työssä työskenteleessään datatieteilijöistä tulee erittäin taitavia suorittamaan tiettyjä toistuvia tehtäviä. Ammattilaisten on tärkeää ymmärtää, että SQL ei pysähdy ja pääty heidän olemassa olevaan tietoon. Mitä tulee edistyneisiin SQL-konsepteihin, heidän tiedoissaan saattaa silti olla puutteita. Joten ei haittaa saada apua menestyäksesi datatieteilijähaastattelussasi. 

SQL on tietokantojen hallinnan ensisijainen kieli, joten SQL-toimintojen suorittaminen on datatieteilijöiden työn ydin. Useimmat datatieteilijöiden haastattelut järjestetään hakijoiden SQL-tietoisuuden määrittämiseksi. 

Jokapäiväiseen työhön ei välttämättä kuulu monimutkaisten kyselyiden kirjoittamista, mutta sinun on osoitettava, että jos tällaisia ​​taitoja tarvitaan, olet henkilö, joka osaa tehdä sen. Ei siis pitäisi olla yllättävää, että haastattelijat kysyvät monipuolisesti SQL-haastattelukysymykset testata ehdokkaan sujuvuutta SQL:ssä.

Tässä artikkelissa halusimme tehdä yhteenvedon joistakin monimutkaisista kysymyksistä ja käsitteistä, joita kysyttiin kokeneiden ammattilaisten haastatteluissa. Vaikka olisit varma SQL-tietämyksestäsi, ei haittaa avainsanoja skannaamalla ja varmistamalla, että kaikki on käsitelty.

Vähimmäiskonseptit kokeneille ammattilaisille

TAPAUS / MILLOIN

 
CASE-käsitteen (ja siihen liittyvän When-lausekkeen) perusteellinen ymmärtäminen on välttämätöntä SQL:n täydellisen hallinnan saavuttamiseksi. Tapauslausunnon avulla voimme tarkistaa tietyt ehdot ja palauttaa arvon sen perusteella, arvioivatko ehdot todeksi vai epätosi. Yhdessä lauseiden, kuten WHERE ja ORDER BY, kanssa CASE antaa meille mahdollisuuden tuoda logiikkaa, ehtoja ja järjestystä SQL-kyselyihimme.

CASE-lauseiden arvo ei rajoitu yksinkertaisen ehdollisen logiikan tarjoamiseen kyselyissämme. Kokeneilla datatutkijoilla pitäisi olla enemmän kuin pintatason ymmärrys CASE-lauseesta ja sen käytöstä. Haastattelijat todennäköisesti kysyvät sinulta kysymyksiä erityyppisistä CASE-lausekkeista ja niiden kirjoittamisesta. 

Kokeneiden hakijoiden tulee olla valmiita vastaamaan teoreettisiin kysymyksiin, kuten selittämään eroja arvostettujen ja haettujen CASE-lauseiden välillä, miten ne toimivat ja miten ne kirjoitetaan. Tämä edellyttää vahvaa ymmärrystä niiden syntaksista ja yleisistä käytännöistä. Sanomattakin on selvää, että tähän sisältyy myös ELSE-lausekkeen oikea käyttö.

Kokeneiden datatieteilijöiden odotetaan osaavan käyttää CASE:tä myös aggregaattitoimintojen kanssa. Sinua saatetaan myös pyytää kirjoittamaan lyhytsanainen CASE-lause, joka on vähemmän toistuva ja helpompi ymmärtää. Sinun pitäisi pystyä puhumaan älykkäästi varoituksista ja mahdollisista riskeistä, jotka liittyvät lyhennetyn CASE-lauseen käyttöön.

Yleensä kokeneen datatieteilijän on kyettävä käyttämään CASE:a tehokkaampien kyselyjen kirjoittamiseen. Loppujen lopuksi CASE-käskyn koko tarkoitus on välttää liian monien yksittäisten kyselyjen kirjoittamista tietojen yhdistämiseksi.

Tässä on esimerkki kysymyksestä, joka voidaan ratkaista käyttämällä CASE / WHEN -lauseita: https://platform.stratascratch.com/coding/9634-host-response-rates-with-cleaning-fees?python= 

Tämä on vaikea kysymys, joka kysytään Airbnb-haastatteluissa, joissa ehdokkaiden on löydettävä isännän keskimääräinen vastausprosentti, postinumero ja sitä vastaava siivousmaksu.

Tässä tapauksessa CASE/WHEN-käskyä käytetään muotoilemaan tulos numerona ja esittämään se prosenttiarvona postinumeron lisäksi.

SQL liittyy

 
On helppo luottaa SQL Joinsin tietämyksiisi, mutta mitä enemmän tutkit tätä aihetta, sitä enemmän huomaat, että et tiedä. Haastattelijat kysyvät usein haastattelukysymyksiä SQL-liitosten edistyneistä puolista jotka jäävät usein huomiotta. Joten on tärkeää syventyä tähän käsitteeseen ja hallita se perusteellisesti.
 
Peruskäsitteiden lisäksi haastattelijat voivat tiedustella, mitä itseristiliitokset ovat, ja selvittää tietosi syvyyttä kysymällä käytännön kysymyksiä. Sinun tulisi tuntea kaikki eri liitostyypit, mukaan lukien monimutkaisemmat tyypit, kuten hash-liitokset tai yhdistelmäliitokset. Sinua voidaan myös pyytää selittämään, mitä luonnolliset liitokset ovat ja milloin ne ovat hyödyllisimpiä. Joskus sinun täytyy selittää erot luonnollisten ja sisäisten liitosten välillä.
 
Sinulla tulee yleensä olla perusteellinen kokemus ja hallinta liitosten käyttämisestä yhdessä muiden lauseiden kanssa haluttujen tulosten saavuttamiseksi. Sinun pitäisi esimerkiksi tietää, kuinka käyttää WHERE-lausetta käyttääksesi Cross Joinia ikään kuin se olisi sisäinen liitos. Sinun odotetaan myös osaavan käyttää liitoksia uusien taulukoiden tuottamiseen ilman, että palvelinta painetaan liikaa. Tai kuinka käyttää ulkoliitoksia tunnistamaan ja täyttämään puuttuvat arvot tietokannan kyselyn aikana. Tai ulkoisten liitosten sisäinen toiminta, kuten se, että niiden järjestyksen uudelleenjärjestely voi muuttaa tulosta. 

Tässä on esimerkki kysymyksestä, joka edellyttää sisäisen yhteisen lausunnon kirjoittamista

Tämä on melko vaikea kysymys, jossa ehdokkaita pyydetään näyttämään tilauksen koko prosentteina kokonaiskulutuksesta.
 
 

Advanced Concept N1: Päivämäärä-aika-manipulaatio

 
SQL-haastattelukysymyksiä kokeneille ammattilaisille
 

On yleistä, että tietokannat sisältävät päivämäärät ja kellonajat, joten jokaisella kokeneella datatieteilijällä tulee olla syvät tiedot niiden kanssa työskentelystä. Tämäntyyppisten tietojen avulla voimme seurata tapahtumien järjestystä, esiintymistiheyden muutoksia, laskea aikavälejä ja saada muita tärkeitä oivalluksia. Usein näiden toimintojen suorittaminen vaatii täydellisen päivämäärän ja ajan manipuloinnin hallinnan SQL:ssä. Joten ammattilaisilla, joilla on tällaiset taidot, on etulyöntiasema verrattuna kilpaileviin ehdokkaisiin. Jos et ole 100 % varma taitoistasi, katso alla kuvatut käsitteet ja katso kuinka monet niistä kuulostavat tutuilta.

Koska on olemassa monia erilaisia ​​(mutta kelvollisia) lähestymistapoja tietojen muotoiluun SQL:ssä, mahtavien koodaajien tulisi ainakin tuntea ne kaikki. Haastattelujen aikana rekrytointipäälliköt odottavat tietoa perustietojen muotoilun käsitteistä ja kykyä puhua älykkäästi oikean toiminnon valinnasta tehtävään. Tämä sisältää tiedon tärkeästä FORMAT()-funktiosta ja siihen liittyvästä syntaksista, jotta funktiota voidaan hyödyntää täysimääräisesti. Myös muiden perustoimintojen, kuten NOW() tuntemus odotetaan. Ei myöskään olisi itsestäänselvyys, että kokeneita ammattilaisia ​​kysyttäisiin peruskäsitteistä, kuten aikasarjatiedoista ja sen tarkoituksesta.

On myös tärkeää ottaa huomioon hakemasi työn konteksti. Tekoäly- tai IoT-yritys olisi enemmän huolissaan antureilta kerättyjen tietojen seurantasta, kun taas osakekaupan sovellus saattaa vaatia sinua seuraamaan hintavaihteluja päivän, viikon tai kuukauden aikana.

Joissakin tapauksissa työnantajat saattavat kysyä edistyneemmistä päivämäärä/aikafunktioista SQL:ssä, kuten CAST(), EXTRACT() tai DATE_TRUNC(). Nämä toiminnot voivat olla korvaamattomia, kun työskentelet suuren tietomäärän kanssa, joka sisältää päivämäärät. Kokeneen datatieteilijän tulee tietää kunkin toiminnon tarkoitus ja sen sovellukset. Ihanteellisessa tilanteessa hänellä pitäisi olla kokemusta niiden käytöstä aiemmin.

SQL:n monimutkaisin päivämäärän ja ajan manipulointi käsittää perus- ja edistyneiden toimintojen yhdistelmän. Joten on välttämätöntä tuntea ne kaikki alkaen perusmuodoista FORMAT(), NOW(), CURRENT_DATE ja CURRENT_TIME, mukaan lukien yllä mainitut edistyneemmät toiminnot. Kokeneena datatieteilijänä sinun pitäisi myös tietää, mitä INTERVAL tekee ja milloin sitä tulee käyttää.

Tässä on esimerkki Airbnb:n haastatteluissa esitetystä kysymyksestä, jossa ehdokkaiden on käytettävä saatavilla olevia tietoja Airbnb:n kasvun seuraamiseen.
 
 

Lähtökohta:

 
Tässä kysymyksessä hakijoita pyydetään seuraamaan Airbnb:n kasvua vuosittain ilmoittautuneiden majoittajien lukumäärän muutosten perusteella. Toisin sanoen käytämme uusien rekisteröityjen isäntien määrää kunkin vuoden kasvun indikaattorina. Kasvuvauhti selviää laskemalla isäntien lukumäärän ero edellisen ja kuluvan vuoden välillä ja jakamalla tämä luku edellisen vuoden aikana rekisteröityjen isäntien lukumäärällä. Sitten löydämme prosenttiarvon kertomalla tuloksen 100:lla.

Tuotostaulukossa tulee olla sarakkeet ja vastaavat tiedot isäntien lukumäärästä kuluvana vuonna, edellisenä vuonna ja kasvuprosentti vuodesta toiseen. Prosenttiosuus tulee pyöristää lähimpään kokonaislukuun ja rivit järjestellä nousevassa järjestyksessä vuodesta riippuen.
 
 

Ratkaisu:

 
Vastatakseen tähän kysymykseen ehdokkaan on työskenneltävä taulukon "airbnb_search_details" kanssa, joka sisältää useita sarakkeita. Tarvitsemme sarakkeen otsikolla "host_since", joka tarkoittaa vuotta, kuukautta ja päivää, jolloin isäntä rekisteröityi ensimmäisen kerran verkkosivustolle. Tässä harjoituksessa kuukausi ja päivä ovat merkityksettömiä, joten ensimmäinen asia, joka meidän on tehtävä, on poimia vuosi arvosta. Sitten meidän on luotava näkymä, joka sisältää erilliset sarakkeet kuluvalle vuodelle, edelliselle vuodelle ja kyseisen vuoden isäntien kokonaismäärälle. 

Valitse ote(vuosi FROM host_since::DATE) FROM airbnb_search_details WHERE host_since EI ON NULL

Tähän mennessä olemme tehneet kaksi asiaa:

  1. Olemme varmistaneet, että sisällytetään vain ne rivit, joissa host_since-sarake ei ole tyhjä.
  2. Olemme poimineet vuoden tiedoista ja laskeneet sen DATE-arvoksi.
Valitse ote(vuosi FROM isäntä_alkaen::DATE) count(id) nykyisenä_vuoden_isäntänä FROM airbnb_search_details WHERE host_since IS NOT NULL GROUP BY ote(year FROM host_since::DATE) ORDER BY year asc

Sitten laskemme tunnukset ja määritämme GROUP BY -lausekkeen jokaiselle vuodelle. Ja näytä se nousevassa järjestyksessä. 

Tämän pitäisi antaa meille taulukko, jossa on kaksi saraketta: vuosi ja kyseisenä vuonna rekisteröityjen isäntien lukumäärä. Meillä ei vieläkään ole täyttä kuvaa kysymyksen ratkaisemiseksi, mutta se on askel oikeaan suuntaan. Tarvitsemme myös erilliset sarakkeet edellisen vuoden aikana ilmoittautuneille isännille. Tässä tulee esiin LAG()-funktio.

SELECT Vuosi, nykyinen_vuosi_isäntä, LAG(nykyinen_vuosi_isäntä, 1) OVER (ORDER BY year) as prev_year_host Valitse ote(year FROM isäntä_alkaen::DATE) count(id) nykyisen_vuoden_isäntänä FROM airbnb_search_details WHERE isäntä_alkaen B-isäntä EI NULLce FROM_ ote :PÄIVÄMÄÄRÄ) TILAUS VUODEN MUKAAN asc

Lisäsimme tähän kolmannen sarakkeen, jonka nimi on 'prev_year_host' ja sen arvot tulevat sarakkeesta 'current_year_host', lukuun ottamatta yhden rivin viivettä. Tältä se saattaa näyttää:

SQL-haastattelukysymyksiä kokeneille ammattilaisille
 

Taulukon järjestäminen tällä tavalla tekee lopullisen kasvunopeuden laskemisesta erittäin kätevää. Meillä on erillinen sarake jokaiselle yhtälön arvolle. Lopulta koodimme pitäisi näyttää suunnilleen tältä:

SELECT vuosi, nykyinen_vuosi_isäntä, edellinen_vuosi_isäntä, round(((nykyinen_vuosi_isäntä - aiempi_vuosi_isäntä)/(cast(ed._year_host AS numeerinen))))*100) arvioitu_kasvu FROM (SELECT vuosi, nykyinen_vuosi_isäntä, LAG(nykyinen_vuosi_isäntä, 1) Y_year) (ASV.v. FROM (SELECT ote(vuosi FROM isäntä_alkaen::päivämäärä) AS vuosi, määrä(id) nykyinen_vuosi_isäntä FROM airbnb_search_details WHERE host_since IS NOT NULL GROUP BY ote(year FROM host_since::date) ORDER BY year) t1) t2

Lisäämme tähän toisen kyselyn ja toisen sarakkeen, jossa laskemme kasvunopeuden. Meidän on kerrottava alkuperäinen tulos 100:lla ja pyöristettävä se täyttääkseen tehtävän vaatimukset. 

Se on ratkaisu tähän tehtävään. On selvää, että päivämäärän ja ajan manipulointitoiminnot olivat välttämättömiä tehtävän suorittamiseksi. 
 
 

Advanced Concept N2: Ikkunatoiminnot ja osiot

 
SQL-haastattelukysymyksiä kokeneille ammattilaisille
 

SQL-ikkunan toiminnot ovat yksi tärkeimmistä käsitteistä monimutkaisten, mutta tehokkaiden SQL-kyselyiden kirjoittamisessa. Kokeneilta ammattilaisilta odotetaan syvää käytännön ja teoreettista tietämystä ikkunoiden toiminnoista. Tämä sisältää ylilausekkeen tuntemisen ja sen käytön hallitsemisen. Haastattelijat saattavat kysyä, kuinka OVER-lause voi muuttaa yhdistelmäfunktiot ikkunafunktioiksi. Saatat myös kysyä kolmesta aggregaattifunktiosta, joita voidaan käyttää ikkunafunktioina. Kokeneiden datatieteilijöiden tulisi olla tietoisia myös muista, ei-aggregoiduista ikkunoiden toiminnoista.

Jotta ikkunatoimintoja voitaisiin hyödyntää parhaalla mahdollisella tavalla, on myös tiedettävä, mikä PARTITION BY -lause on ja miten sitä käytetään. Sinua voidaan pyytää selittämään se ja antamaan esimerkkejä muutamista käyttötapauksista. Joskus sinun on järjestettävä rivit osioiden sisällä käyttämällä ORDER_BY-lausetta.

Hakijoilla, jotka voivat osoittaa perusteellisen tuntemuksensa jokaisesta yksittäisestä ikkunatoiminnosta, kuten ROW_NUMBER(), on etu. Sanomattakin on selvää, että pelkkä teoreettinen tieto ei riitä – ammattilaisilla tulee olla kokemusta niiden käytöstä myös käytännössä, osioiden kanssa tai ilman. Esimerkiksi kokeneen ammattilaisen pitäisi pystyä selittämään erot RANK()- ja DENSE_RANK()-arvojen välillä. Ihanteellisen ehdokkaan tulee tuntea joitain edistyneimmistä käsitteistä, kuten osioiden kehykset, ja pystyä selittämään ne selkeästi.

Hyvien ehdokkaiden tulee myös selittää NTH_VALUE()-funktion käyttö. Ei haittaisi mainita tämän funktion vaihtoehdot, kuten FIRST_VALUE() ja LAST_VALUE()-funktiot. Yritykset haluavat usein mitata kvartiileja, kvantileja ja prosenttipisteitä yleensä. Tämän toiminnon suorittamiseksi datatieteilijöiden on osattava käyttää myös NTILE()-ikkunatoimintoa.

SQL:ssä on yleensä monia tapoja lähestyä tehtävää. Silti ikkunatoiminnot tarjoavat helpoimman tavan suorittaa yleisiä, mutta monimutkaisia ​​toimintoja. Hyvä esimerkki tällaisesta ikkunafunktiosta on LAG() tai LEAD(), joten sinun pitäisi myös tuntea ne. Katsotaanpa esimerkiksi esimerkkiä aiemmasta ratkaisusta vaikeaan Airbnb-haastattelukysymykseen:

Edellisen vuoden isäntien lukumäärän näyttämiseksi käytimme LAG()-funktiota OVER-käskyn kanssa. Tämä olisi voitu tehdä monilla muilla tavoilla, mutta ikkunafunktiot antoivat meille mahdollisuuden saada haluttu tulos vain yhdellä SQL-koodirivillä:

LAG(nykyisen_vuoden_isäntä, 1) OVER (JÄRJESTYS VUODEN MUKAAN) edellisenä_vuoden_isäntänä

Monien yritysten on laskettava kasvu tietyltä ajanjaksolta. LAG()-funktio voi olla korvaamaton tällaisten tehtävien suorittamisessa.
 
 

Advanced Concept N3: Kuukauden kasvu

 
SQL-haastattelukysymyksiä kokeneille ammattilaisille
 

Monet organisaatiot käyttävät data-analyysiä mitatakseen omaa suorituskykyään. Tämä voi edellyttää markkinointikampanjoiden tehokkuuden tai tietyn sijoituksen ROI:n mittaamista. Tällaisen analyysin suorittaminen edellyttää syvällistä SQL:n tuntemusta, kuten päivämäärä-, aika- ja ikkunafunktiot.

Tietotieteilijöiden on myös todistettava taitonsa tietojen muotoilussa ja esittämisessä prosentteina tai missä tahansa muussa muodossa. Yleensä sinun on käytettävä useiden taitojen yhdistelmää sellaisten käytännön kysymysten ratkaisemiseksi, joissa sinun on laskettava kuukausittainen kasvu. Jotkut vaadituista käsitteistä ovat edistyneitä (ikkunafunktiot, päivämäärän ja ajan käsittely), kun taas toiset ovat peruskäsitteitä (koontifunktiot ja yleiset SQL-käskyt).

Katsotaanpa yhtä esimerkkikysymystä, jonka haastattelijat kysyvät Amazonista.

Lähtökohta:

 
Tässä kysymyksessä meidän on työskenneltävä ostotaulukon kanssa ja laskettava kuukausittainen tulojen kasvu tai lasku. Lopputulos on muotoiltava tietyllä tavalla (muoto VVVV-KK) ja prosenttiosuudet tulee pyöristää toiseen lähimpään desimaaliin. 

Ratkaisu:

 
Kun työskentelet tällaisen tehtävän parissa, sinun on ensin ymmärrettävä taulukko. Sinun tulee myös määrittää sarakkeet, joiden kanssa sinun on työskenneltävä vastataksesi kysymykseen. Ja miltä tulostuksesi tulee näyttämään.

Esimerkissämme data-arvoilla on objektityyppi, joten meidän on käytettävä CAST()-funktiota niiden muuntamiseen päivämäärätyypeiksi.

SELECT to_char(cast(created_at as date), 'VVVV-KK') FROM sf_transactions

Kysymys määrittää myös päivämäärän muodon, joten voimme käyttää TO_CHAR()-funktiota SQL:ssä päivämäärän tulostamiseen tässä muodossa.

Kasvun laskemiseksi meidän tulisi myös valita koostefunktio Create_at ja SUM() saadaksesi kyseisen päivämäärän kokonaismyynnin määrän. 

SELECT to_char(cast(created_at as date), 'VVVV-KK'), luotu_at, summa(arvo) FROM sf_transactions

Tässä vaiheessa meidän on käytettävä ikkunatoimintoja uudelleen. Tarkemmin sanottuna aiomme käyttää LAG()-funktiota päästäksemme viime kuukauden määrään ja näyttämään sen erillisenä sarakkeena. Tätä varten tarvitsemme myös OVER-lausekkeen.

SELECT to_char(cast(created_at as date), 'VVVV-KK') AS vuosi_kuukausi, luotu_hetkellä, summa(arvo) viive(summa(arvo), 1) OVER (ORDER BY Created_at::date) FROM sf_transactions GROUP BY luotu_at

Tähän mennessä kirjoittamamme koodin perusteella taulukkomme näyttää suunnilleen tältä:

SQL-haastattelukysymyksiä kokeneille ammattilaisille
 

Tässä on päivämäärät ja vastaavat kokonaisarvot summasarakkeessa ja viimeisen päivämäärän arvot viivesarakkeessa. Nyt voimme liittää arvot kaavaan ja näyttää kasvunopeuden erillisessä sarakkeessa.

Meidän tulisi myös poistaa tarpeeton Created_at sarake ja muuttaa GROUP BY- ja ORDER BY -lauseet vuosiksi_kuukausi.

SELECT to_char(cast(created_at as date), 'VVVV-KK') AS vuosi_kuukausi, summa(arvo), viive(summa(arvo), 1) OVER (ORDER BY to_char(cast(created_at as date)) FROM sf_transactions GROUP BY vuosi_kuukausi

Kun olemme suorittaneet koodin, taulukossamme tulisi olla vain ne sarakkeet, jotka ovat välttämättömiä laskennassamme.

SQL-haastattelukysymyksiä kokeneille ammattilaisille
 

Nyt voimme vihdoin löytää ratkaisun. Lopullinen koodi näyttäisi tältä:

SELECT to_char(created_at::date, 'VVVV-KK') AS vuosi_kuukausi, round(((sum(value) - lag(sum(value), 1) OVER w) / (lag(sum(value), 1) OVER w)) * 100, 2) AS tuloerot_prosentista FROM sf_transactions GROUP BY year_month WINDOW w AS ( ORDER BY to_char(created_at::date, 'VVVV-KK')) TILAA vuosi_kuukausi ASC


 

Tässä koodissa otamme kaksi sarakearvoa edellisestä esimerkistä ja laskemme niiden välisen eron. Huomaa, että käytämme myös ikkunaaliaksia vähentääksemme koodimme toistumista.

Sitten jaamme sen algoritmin mukaisesti kuluvan kuukauden tuloilla ja kerromme sen 100:lla saadaksesi prosenttiarvon. Lopuksi pyöristetään prosenttiarvo kahteen desimaaliin. Saavutamme vastauksen, joka täyttää kaikki tehtävän vaatimukset. 

Advanced Concept N4: Vaihtuvuusprosentit

 
Vaikka vaihtuvuus on kasvun vastakohta, se on myös tärkeä mittari. Monet yritykset seuraavat vaihtuvuusprosenttejaan, varsinkin jos niiden liiketoimintamalli on tilauspohjainen. Näin he voivat seurata kadonneiden tilausten tai tilien määrää ja ennustaa sen aiheuttaneita syitä. Kokeneen datatieteilijän odotetaan tietävän, mitä funktioita, lausuntoja ja lausekkeita käyttää vaihtuvuusasteiden laskemiseen.

Tilaustiedot ovat hyvin yksityisiä ja sisältävät yksityisiä käyttäjätietoja. Tietojen tutkijoiden on myös tärkeää osata työskennellä tällaisten tietojen kanssa paljastamatta sitä. Usein vaihtuvuusasteiden laskeminen sisältää yleisiä taulukkolausekkeita, jotka ovat suhteellisen uusi käsite. Parhaiden datatieteilijöiden tulisi tietää, miksi CTE:t ovat hyödyllisiä ja milloin niitä tulee käyttää. Kun työskentelet vanhempien tietokantojen kanssa, joissa CTE:itä ei ole saatavilla, ihanteellisen ehdokkaan pitäisi silti pystyä saamaan työ valmiiksi.

Tässä esimerkki vaikeasta tehtävästä. Lyftissä haastattelevat hakijat saavat tämän tehtävän laskea kuljettajien vaihtuvuusaste yrityksessä.

Tämän ongelman ratkaisemiseksi datatieteilijöiden on käytettävä case/kun-lauseita, ikkunafunktioita, kuten LAG(), sekä FROM / WHERE ja muita peruslauseita. 

Yhteenveto

 
Työskentely datatieteilijänä useiden vuosien ajan näyttää varmasti vaikuttavalta CV:ssä ja tuo sinulle monia haastatteluja. Kuitenkin, kun saat jalkasi oven väliin, sinun on silti esitettävä tietoja vuosien kokemuksen täydentämiseksi. Vaikka sinulla olisi laaja kokemus kyselyjen kirjoittaminen SQL:llä, ei haittaa käyttää resursseja, kuten StrataScratch päivittääksesi tietosi.

 
 
Nate Rosidi on datatieteilijä ja tuotestrategiassa. Hän on myös analytiikkaa opettava dosentti ja perustaja StrataScratch, alusta, joka auttaa datatieteilijöitä valmistautumaan haastatteluihin huippuyritysten todellisilla haastattelukysymyksillä. Ota yhteyttä häneen Twitter: StrataScratch or LinkedIn.

Lähde: https://www.kdnuggets.com/2022/01/sql-interview-questions-experienced-professionals.html

Aikaleima:

Lisää aiheesta KDnuggets