Deneyimli Profesyoneller için SQL Mülakat Soruları

Kaynak Düğüm: 1586233

Deneyimli Profesyoneller için SQL Mülakat Soruları
 

Giriş

 
İş arayan deneyimli bir veri bilimcisiyseniz, daha iyi bir zaman seçemezdiniz. Şu an itibariyle, pek çok yerleşik kuruluş, zanaatlarını hem içte hem dışta bilen veri bilimcileri arıyor. Bununla birlikte, yüksek talep, belirli bir beceri seti olmadan üst düzey pozisyonlara başvurabileceğiniz veya çemberlerin içinden geçip başvurmanız gerektiği anlamına gelmez. Şirketler, deneyimli veri bilimcilerini işe alırken, onlardan eldeki en zor görevler üzerinde çalışmalarını bekler. Bu çalışanlar, gerektiğinde kullanabilmeleri için en belirsiz özellikleri bile iyi kavramalıdır.

Kıdemli pozisyonlar için mülakat yaparken, deneyimli veri bilimcilerinin çok daha zor sorular sorma eğiliminde olmaları şaşırtıcı olmamalıdır. Genellikle, birkaç yıl boyunca tek bir iş üzerinde çalışırken, veri bilimcileri belirli tekrarlayan görevleri yerine getirme konusunda çok yetenekli hale gelirler. Profesyonellerin SQL'in var olan bilgileriyle bitip bitmediğini anlamaları çok önemlidir. Gelişmiş SQL kavramları söz konusu olduğunda, bilgilerinde hala bazı boşluklar olabilir. Bu nedenle, veri bilimcisi görüşmenizde başarılı olmak için yardım almaktan zarar gelmez. 

SQL, veritabanlarını yönetmek için birincil dildir, bu nedenle SQL işlemlerini gerçekleştirmek, veri bilimcilerinin işlerinin merkezinde yer alır. Çoğu veri bilimcisi görüşmesi, adayın SQL bilgisini belirlemek için düzenlenir. 

Günlük iş, karmaşık sorgular yazmayı içermeyebilir, ancak bu tür becerilere ihtiyaç duyulursa, bunu yapabilecek kişi olduğunuzu göstermelisiniz. Bu nedenle, görüşmecilerin çeşitli sorular sorması şaşırtıcı olmamalıdır. SQL mülakat soruları adayın SQL'deki akıcılığını test etmek için.

Bu yazıda, deneyimli profesyonellerle yapılan röportajlarda sorulan bazı karmaşık soruları ve kavramları özetlemek istedik. SQL bilginize güveniyor olsanız bile, anahtar kelimeleri taramanın ve her şeyi kapsadığınızdan emin olmanın zararı olmaz.

Deneyimli profesyoneller için minimum konseptler

VAKA / NE ZAMAN

 
CASE kavramını (ve beraberindeki When deyimini) tam olarak anlamak, SQL'de tam bir ustalık elde etmek için esastır. Bir vaka ifadesi, belirli koşulları kontrol etmemize ve bu koşulların doğru veya yanlış olarak değerlendirilip değerlendirilmediğine bağlı olarak bir değer döndürmemize olanak tanır. WHERE ve ORDER BY gibi tümcelerle birlikte CASE, SQL sorgularımıza mantık, koşullar ve düzen getirmemizi sağlar.

CASE deyimlerinin değeri, sorgularımızda basit bir koşullu mantık sağlamakla sınırlı değildir. Deneyimli veri bilimcileri, CASE deyimi ve kullanımları hakkında yüzey düzeyinde bir anlayıştan daha fazlasına sahip olmalıdır. Görüşmecilerin size farklı CASE ifadeleri türleri ve bunların nasıl yazılacağı hakkında sorular sorması muhtemeldir. 

Deneyimli adaylar, Valued ve Searched CASE ifadeleri arasındaki farkları, nasıl çalıştıklarını ve nasıl yazılacağını açıklamak gibi teorik soruları yanıtlamaya hazırlanmalıdır. Bu, sözdizimlerinin ve yaygın uygulamalarının güçlü bir şekilde anlaşılmasını gerektirir. Söylemeye gerek yok, bu aynı zamanda ELSE yan tümcesinin doğru kullanımını da içerir.

Deneyimli veri bilimcilerinin, CASE'i toplama işlevleriyle nasıl kullanacaklarını da bilmeleri beklenir. Ayrıca, daha az tekrarlı ve anlaşılması daha kolay olan kısa bir CASE ifadesi yazmanız istenebilir. Kısa CASE ifadeleri kullanmanın uyarıları ve olası riskleri hakkında akıllıca konuşabilmelisiniz.

Genel olarak, deneyimli bir veri bilimcisi, daha verimli sorgular yazmak için CASE'i kullanabilmelidir. Sonuçta, CASE ifadesinin tüm amacı, verileri birleştirmek için çok fazla bireysel sorgu yazmaktan kaçınmaktır.

CASE / WHEN ifadeleri kullanılarak çözülebilecek bir soru örneği: https://platform.stratascratch.com/coding/9634-host-response-rates-with-cleaning-fees?python= 

Bu, adayların ortalama ev sahibi yanıt oranını, posta kodunu ve buna karşılık gelen temizlik ücretini bulması gereken Airbnb görüşmelerinde sorulan zor bir sorudur.

Bu durumda, sonucu bir sayı olarak biçimlendirmek ve posta koduna ek olarak yüzde değeri olarak sunmak için CASE/ WHEN ifadesi kullanılır.

SQL Katıldı

 
SQL Joins bilginize güvenmek kolaydır, ancak bu konuyu ne kadar çok keşfederseniz, bilmediğinizi de o kadar çok keşfedeceksiniz. Görüşmeciler genellikle SQL Joins'in gelişmiş yönleri hakkında mülakat soruları çoğu zaman gözden kaçan şeylerdir. Bu nedenle, bu kavramı araştırmak ve iyice ustalaşmak önemlidir.
 
Temel kavramların yanı sıra, görüşmeciler kendi kendine çapraz birleştirmelerin ne olduğunu sorabilir ve pratik sorular sorarak bilginizin derinliğini öğrenebilir. Karma birleşimler veya bileşik birleşimler gibi daha karmaşık türler de dahil olmak üzere tüm farklı birleşim türlerini bilmelisiniz. Ayrıca doğal birleşmelerin ne olduğunu ve ne zaman en yararlı olduklarını açıklamanız istenebilir. Bazen doğal ve iç birleşimler arasındaki farkları açıklamanız gerekir.
 
Genel olarak, istenen sonuçları elde etmek için birleştirmeleri diğer ifadelerle birlikte kullanma konusunda kapsamlı bir deneyime ve ustalığa sahip olmalısınız. Örneğin, Cross Join'i bir Inner Join gibi kullanmak için WHERE yan tümcesini nasıl kullanacağınızı bilmelisiniz. Ayrıca, sunucu üzerinde çok fazla baskı oluşturmadan yeni tablolar oluşturmak için birleştirmeleri nasıl kullanacağınızı da bilmeniz beklenecektir. Veya veritabanını sorgularken eksik değerleri belirlemek ve doldurmak için dış birleştirmelerin nasıl kullanılacağı. Veya sıralarını yeniden düzenlemenin çıktıyı değiştirebileceği gerçeği gibi dış birleşimlerin iç işleyişi. 

İşte ortak bir iç ifade yazmayı içeren soruya bir örnek

Adaylardan sipariş büyüklüğünü toplam harcamanın yüzdesi olarak göstermelerinin istendiği bu oldukça zor bir sorudur.
 
 

Gelişmiş Konsept N1: Tarih-Saat Manipülasyonu

 
Deneyimli Profesyoneller için SQL Mülakat Soruları
 

Veritabanlarının tarih ve saatleri içermesi yaygındır, bu nedenle deneyimli herhangi bir veri bilimcisi, onlarla çalışma konusunda derin bilgiye sahip olmalıdır. Bu tür veriler, olayların meydana geldiği sırayı, sıklıktaki değişiklikleri izlememize, aralıkları hesaplamamıza ve diğer önemli bilgileri edinmemize olanak tanır. Bu işlemleri gerçekleştirmek çoğu zaman SQL'de tam bir tarih-zaman manipülasyonu ustalığı gerektirir. Dolayısıyla, böyle bir dizi beceriye sahip profesyoneller, rakip adaylara göre bir avantaja sahip olacaklar. Becerilerinize %100 güvenmiyorsanız, aşağıda açıklanan kavramlara bakın ve kaçının tanıdık geldiğini görün.

SQL'de verileri biçimlendirmek için birçok farklı (ancak geçerli) yaklaşım olduğundan, harika kodlayıcılar en azından hepsine aşina olmalıdır. Görüşmeler sırasında, işe alım yöneticileri, temel veri biçimlendirme kavramları hakkında bilgi ve görev için doğru işlevi seçme konusunda akıllıca konuşma becerisi bekler. Bu, önemli bir FORMAT() işlevinin bilgisini ve işlevden tam olarak yararlanmak için ilgili sözdizimini içerir. ŞİMDİ() gibi diğer temel işlevlerin bilgisi de beklenir. Ayrıca, deneyimli profesyonellere zaman serisi verileri ve amacı gibi temel kavramlar hakkında soru sorulması beklenmedik bir şey olmazdı.

Başvurduğunuz işin bağlamını da dikkate almak önemlidir. Bir AI veya IoT şirketi, sensörlerden toplanan verileri izlemekle daha fazla ilgilenirken, bir hisse senedi ticareti uygulaması gün, hafta veya ay boyunca fiyat dalgalanmalarını izlemenizi gerektirebilir.

Bazı durumlarda işverenler SQL'de CAST(), EXTRACT() veya DATE_TRUNC() gibi daha gelişmiş tarih/saat işlevleri hakkında sorular sorabilir. Bu işlevler, tarih içeren büyük miktarda veriyle çalışırken çok değerli olabilir. Deneyimli bir veri bilimcisi, her işlevin amacını ve uygulamalarını bilmelidir. İdeal bir senaryoda, bunları geçmişte kullanma deneyimine sahip olmalıdır.

SQL'deki en karmaşık tarih-zaman işlemesi, temel ve gelişmiş işlevlerin birleşimini içerecektir. Bu nedenle, daha temel FORMAT(), NOW(), CURRENT_DATE ve CURRENT_TIME'dan başlayarak ve yukarıda bahsedilen daha gelişmiş işlevler de dahil olmak üzere hepsini bilmek gerekir. Deneyimli bir veri bilimcisi olarak INTERVAL'in ne yaptığını ve ne zaman kullanılacağını da bilmelisiniz.

İşte Airbnb röportajlarında sorulan bir soru örneği, adayların Airbnb'nin büyümesini izlemek için mevcut verileri kullanmaları gerekir.
 
 

Önerme:

 
Bu soruda, adaylardan her yıl kaydolan ev sahibi sayısındaki değişikliklere dayalı olarak Airbnb'nin büyümesini izlemeleri istenir. Başka bir deyişle, her yıl için büyüme göstergesi olarak yeni kayıtlı ev sahiplerinin sayısını kullanacağız. Büyüme oranını, geçen yıl ile cari yıl arasındaki ev sahibi sayısı farkını hesaplayarak ve bu sayıyı bir önceki yılda kayıtlı olan ev sahibi sayısına bölerek bulacağız. Sonra sonucu 100 ile çarparak yüzde değerini bulacağız.

Çıktı tablosunda sütunlar ve cari yıldaki, önceki yıldaki ana bilgisayar sayısı ve yıldan yıla büyüme yüzdesi için ilgili veriler bulunmalıdır. Yüzde, en yakın tam sayıya yuvarlanmalı ve satırlar yıla göre artan düzende sıralanmalıdır.
 
 

Çözüm:

 
Bu soruyu cevaplamak için bir adayın birçok sütun içeren 'airbnb_search_details' adlı tabloyla çalışması gerekir. İhtiyacımız olan sütun, ana bilgisayarın web sitesine ilk kaydolduğu yılı, ayı ve günü gösteren 'host_since' olarak etiketlenmiştir. Bu alıştırma için ay ve gün önemsizdir, bu yüzden yapmamız gereken ilk şey, değerden yılı çıkarmaktır. Ardından, mevcut yıl, önceki yıl ve o yıldaki toplam ana bilgisayar sayısı için ayrı sütunlar içeren bir görünüm oluşturmamız gerekecek. 

      extract(year FROM host_since::DATE) FROM airbnb_search_details WHERE host_since NULL DEĞİLDİR'i seçin

Şimdiye kadar iki şey yaptık:

  1. Yalnızca host_since sütununun boş olmadığı satırları eklediğimizden emin olduk.
  2. Verilerden yılı çıkardık ve onu DATE değeri olarak kullandık.
      extract(year FROM host_since::DATE)       count(id) as current_year_host FROM airbnb_search_details WHERE host_since IS NOT NULL GROUP BY extract(year FROM host_since::DATE) ORDER BY yıl artan

Ardından kimlikleri saymaya ve her yıl için GROUP BY deyimini kurmaya devam ediyoruz. Ve artan sırada görünmesini sağlayın. 

Bu bize iki sütunlu bir tablo vermelidir: yıl ve o yıl kayıtlı ana bilgisayar sayısı. Soruyu çözmek için hala tam bir resme sahip değiliz, ancak bu doğru yönde atılmış bir adım. Ayrıca, önceki yıl kaydolan ev sahipleri için ayrı sütunlara ihtiyacımız var. LAG() işlevi burada devreye girer.

SELECT       Yıl,       current_year_host,       LAG(current_year_host, 1) OVER (ORDER BY Year) önceki_yıl_ana bilgisayar olarak seçin .       extract(year FROM host_since::DATE)       count(id) as current_year_host FROM airbnb_search_details WHERE host_since IS NOT NULL GROUP BY extract(yıl) host_since'DEN: :TARİH) YILA GÖRE SİPARİŞ Artan

Buraya bir satır gecikme dışında 'prev_year_host' olarak etiketlenecek ve değerleri 'current_year_host' dan gelecek olan üçüncü sütunu ekledik. İşte böyle görünebilir:

Deneyimli Profesyoneller için SQL Mülakat Soruları
 

Tablonun bu şekilde düzenlenmesi, nihai büyüme oranını hesaplamayı oldukça kolaylaştırır. Denklemdeki her değer için ayrı bir sütunumuz var. Son olarak, kodumuz şöyle görünmelidir:

SELECT yıl,       current_year_host,       önceki_year_host,       round(((current_year_host - önceki_year_host)/(cast(önceki_yıl_ana bilgisayar AS sayısal)))*100) tahmini_büyüme FROM   (Yıl SEÇ,           current_year_host,           LAG(current_year_host, 1) ÜZERİNE (YILA GÖRE SİPARİŞ) OLARAK prev_year_host FROM     (SELECT extract(year                       FROM host_since::date) Yıl olarak,             count(id) current_year_host       airbnb_search_details'den       WHERE host_since NULL DEĞİLDİR       GROUP BY extract(yıl )                    FROM host_since::date)       YILA GÖRE SİPARİŞ) t1) t2

Burada, büyüme oranını hesapladığımız başka bir sorgu ve başka bir sütun ekliyoruz. İlk sonucu 100 ile çarpmalı ve görevin gereksinimlerini karşılamak için yuvarlamalıyız. 

Bu görevin çözümü budur. Görevi tamamlamak için tarih-zaman işleme işlevlerinin gerekli olduğu açıktır. 
 
 

Gelişmiş Konsept N2: Pencere İşlevleri ve Bölümleri

 
Deneyimli Profesyoneller için SQL Mülakat Soruları
 

SQL Pencere Fonksiyonları karmaşık, ancak verimli SQL sorguları yazmak için en önemli kavramlardan biridir. Deneyimli profesyonellerin, pencere işlevleri hakkında derin bir pratik ve teorik bilgiye sahip olmaları beklenir. Bu, over yan tümcesinin ne olduğunu bilmeyi ve kullanımına hakim olmayı içerir. Görüşmeciler, OVER yan tümcesinin toplama işlevlerini pencere işlevlerine nasıl dönüştürebileceğini sorabilir. Pencere işlevleri olarak kullanılabilecek üç toplama işlevi hakkında da soru sorulabilir. Deneyimli veri bilimcileri, diğer toplu olmayan pencere işlevlerinin de farkında olmalıdır.

Pencere işlevlerinden en iyi şekilde yararlanmak için, PARTITION BY yan tümcesinin ne olduğunu ve nasıl kullanılacağını da bilmek gerekir. Bunu açıklamanız ve birkaç kullanım örneğinden örnekler vermeniz istenebilir. Bazen ORDER_BY yan tümcesini kullanarak bölümler içindeki satırları düzenlemeniz gerekir.

ROW_NUMBER() gibi her bir pencere işlevi hakkında kapsamlı bilgi sahibi olduğunu gösterebilen adaylar bir avantaja sahip olacaktır. Söylemeye gerek yok, teorik bilgi tek başına yeterli değil - profesyoneller ayrıca bunları bölmeli veya bölmesiz pratikte kullanma deneyimine sahip olmalıdır. Örneğin, deneyimli bir profesyonel, RANK() ve DENSE_RANK() arasındaki farkları açıklayabilmelidir. İdeal bir aday, bölümler içindeki çerçeveler gibi en gelişmiş kavramlardan bazılarını bilmeli ve bunları net bir şekilde açıklayabilmelidir.

Harika adaylar ayrıca NTH_VALUE() işlevinin kullanımını da açıklamalıdır. Bu fonksiyonun FIRST_VALUE() ve LAST_VALUE() fonksiyonları gibi alternatiflerinden bahsetmekte fayda var. Şirketler genellikle çeyrekleri, nicelikleri ve genel olarak yüzdelikleri ölçmeyi sever. Bu işlemi gerçekleştirmek için veri bilimcilerin NTILE() pencere işlevinin nasıl kullanılacağını da bilmesi gerekir.

SQL'de bir göreve yaklaşmanın genellikle birçok yolu vardır. Yine de pencere işlevleri, yaygın ancak karmaşık işlemleri gerçekleştirmenin en kolay yolunu sağlar. Böyle bir pencere işlevine iyi bir örnek LAG() veya LEAD()'dir, bu nedenle bunlara da aşina olmalısınız. Örneğin, önceki çözümden zorlu bir Airbnb mülakat sorusuna bir örneğe bakalım:

Bir önceki yıldaki host sayısını görüntülemek için OVER deyimi ile LAG() fonksiyonunu kullandık. Bu, başka birçok yolla da yapılabilirdi, ancak pencere işlevleri, istenen sonucu yalnızca bir satır SQL kodunda elde etmemize izin verdi:

LAG(current_year_host, 1) AŞIRI (yıl bazında SİPARİŞ) prev_year_host olarak

Birçok şirketin büyümeyi belirli bir süre boyunca hesaplaması gerekiyor. LAG() işlevi, bu tür atamaları tamamlamak için çok değerli olabilir.
 
 

Gelişmiş Konsept N3: Aydan Aya Büyüme

 
Deneyimli Profesyoneller için SQL Mülakat Soruları
 

Birçok kuruluş, kendi performanslarını ölçmek için veri analizini kullanır. Bu, pazarlama kampanyalarının etkinliğinin veya belirli bir yatırımdaki yatırım getirisinin ölçülmesini gerektirebilir. Bu tür bir analizi gerçekleştirmek, tarih, saat ve pencere işlevleri gibi derinlemesine bir SQL bilgisi gerektirir.

Veri bilimcileri ayrıca verileri biçimlendirme ve yüzde olarak veya başka herhangi bir biçimde gösterme becerilerini kanıtlamak zorunda kalacaklar. Genel olarak, aydan aya büyümeyi hesaplamanız gereken pratik soruları çözmek için birden çok beceri setinin birleşimini kullanmanız gerekir. Gerekli kavramlardan bazıları (pencere işlevleri, tarih-zaman manipülasyonu) ileri düzeyde olacak, diğerleri ise temel olacaktır (toplu işlevler ve ortak SQL ifadeleri).

Amazon'daki Mülakatçılar tarafından sorulan bir örnek soruya bakalım.

Önerme:

 
Bu soruda, bir satın alma tablosu ile çalışmamız ve aylık büyüme veya gelir düşüşünü hesaplamamız gerekiyor. Nihai sonuç belirli bir şekilde biçimlendirilmelidir (YYYY-AA biçimi) ve yüzdeler en yakın ikinci ondalık basamağa yuvarlanmalıdır. 

Çözüm:

 
Böyle bir görev üzerinde çalışırken yapmanız gereken ilk şey tabloyu anlamaktır. Ayrıca soruyu cevaplamak için çalışmanız gereken sütunları da belirlemelisiniz. Ve çıktınız nasıl görünecek.

Örneğimizde, veri değerleri nesne tipine sahiptir, bu yüzden onları tarih tiplerine dönüştürmek için CAST() işlevini kullanmamız gerekecek.

sf_transactions'tan to_char(cast(tarih olarak oluşturuldu), 'YYYY-AA') SEÇİN

Soru ayrıca tarihler için bir format belirtir, bu nedenle tarihi bu formatta çıktılamak için SQL'de TO_CHAR() işlevini kullanabiliriz.

Büyümeyi hesaplamak için, o tarihteki toplam satış hacmini elde etmek için create_at ve SUM() toplama işlevini de seçmeliyiz. 

sf_transactions'dan SELECT to_char(cast(created_at as date), 'YYYY-MM'), created_at, sum(value) FROM

Bu noktada tekrar pencere fonksiyonlarını kullanmamız gerekiyor. Özellikle, geçen ayın hacmine erişmek ve onu ayrı bir sütun olarak görüntülemek için LAG() işlevini kullanacağız. Bunun için ayrıca bir OVER cümlesine ihtiyacımız olacak.

SELECT   to_char(cast(created_at as date), 'YYYY-MM') AS yıl_ay,   created_at,   sum(value)   lag(sum(value), 1) OVER (ORDER BY created_at::date) FROM sf_transactions GROUP BY created_at

Şu ana kadar yazdığımız koda göre tablomuz şuna benzeyecek:

Deneyimli Profesyoneller için SQL Mülakat Soruları
 

Burada, toplam sütununda tarihler ve karşılık gelen toplam değerler ve gecikme sütununda son tarihin değerleri var. Artık değerleri formüle bağlayabilir ve büyüme oranını ayrı bir sütunda görüntüleyebiliriz.

Ayrıca gereksiz create_at sütununu kaldırmalı ve GROUP BY ve ORDER BY deyimlerini yıl_ay olarak değiştirmeliyiz.

SEÇ   to_char(cast(tarih olarak_oluşturuldu), 'YYYY-AA') AS yıl_ay,   toplam(değer),   lag(sum(değer), 1) OVER (ORDER BY to_char(cast(tarih olarak_oluşturuldu)) FROM sf_transactions GROUP BY yıl ay

Kodu çalıştırdığımızda, tablomuz yalnızca hesaplamamız için gerekli olan sütunları içermelidir.

Deneyimli Profesyoneller için SQL Mülakat Soruları
 

Artık nihayet çözüme ulaşabiliriz. İşte son kodun nasıl görüneceği:

SELECT to_char(created_at::date, 'YYYY-MM') AS yıl_ay,       round(((sum(value) - lag(sum(value), 1) OVER w) / (lag(sum(value), 1) OVER w)) * 100, 2) AS gelir_diff_pct FROM sf_transactions GRUBU YIL_AYA GÖRE PENCERE w AS (         ORDER BY to_char(created_at::date, 'YYYY-MM')) ORDER BY yıl_ay ASC


 

Bu kodda, önceki örnekten iki sütun değeri alıyoruz ve aralarındaki farkı hesaplıyoruz. Kodumuzun tekrarını azaltmak için pencere takma adlarını da kullandığımızı unutmayın.

Ardından, algoritmaya uygun olarak, onu içinde bulunulan ayın gelirine böler ve yüzde değerini elde etmek için 100 ile çarparız. Son olarak, yüzde değerini iki ondalık basamağa yuvarlarız. Görevin tüm gereksinimlerini karşılayan cevaba ulaşıyoruz. 

Gelişmiş Konsept N4: Kayıp oranları

 
Büyümenin tersi olsa da, kayıp da önemli bir ölçüdür. Birçok şirket, özellikle iş modelleri abonelik tabanlıysa, kayıp oranlarını takip eder. Bu sayede kaybedilen abonelik veya hesapların sayısını takip edebilir ve buna neden olan nedenleri tahmin edebilirler. Deneyimli bir veri bilimcisinin, kayıp oranlarını hesaplamak için hangi işlevlerin, ifadelerin ve tümcelerin kullanılacağını bilmesi beklenir.

Abonelik verileri çok özeldir ve özel kullanıcı bilgilerini içerir. Veri bilimcilerin, bu tür verileri açığa çıkarmadan nasıl çalışacaklarını bilmeleri de önemlidir. Genellikle, kayıp oranlarının hesaplanması, nispeten yeni bir kavram olan ortak tablo ifadelerini içerir. En iyi veri bilimcileri, CTE'lerin neden yararlı olduğunu ve ne zaman kullanılacağını bilmelidir. CTE'lerin bulunmadığı eski veritabanlarıyla çalışırken, ideal bir adayın yine de işi yapabilmesi gerekir.

İşte zor bir görev örneği. Lyft'te mülakata giren adaylar, şirketteki sürücülerin kayıp oranını hesaplamak için bu görevi alırlar.

Bu sorunu çözmek için veri bilimcileri, case/while ifadeleri, LAG() gibi pencere işlevlerinin yanı sıra FROM / WHERE ve diğer temel tümceleri kullanmalıdır. 

Sonuç

 
Uzun yıllar veri bilimcisi olarak çalışmak bir özgeçmiş üzerinde kesinlikle etkileyici görünüyor ve size birçok röportaj kazandıracak. Ancak, ayağınızı kapıdan içeri soktuğunuzda, yılların deneyimini tamamlayacak bilgiyi yine de sergilemeniz gerekir. Geniş bir deneyime sahip olsanız bile SQL'de sorgu yazmagibi kaynakları kullanmaktan zarar gelmez StrataScratch bilginizi tazelemek için.

 
 
Nate Rosidi bir veri bilimcisi ve ürün stratejisidir. Aynı zamanda analitik öğreten bir yardımcı profesördür ve kurucusudur. StrataScratch, veri bilimcilerinin en iyi şirketlerden gelen gerçek röportaj sorularıyla röportajlarına hazırlanmalarına yardımcı olan bir platform. onunla bağlantı kurun Twitter: StrataScratch or LinkedIn.

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

Zaman Damgası:

Den fazla KDNuggets