Eksik tarihleri bul
generate_series() fonksiyonu, eksik tarihleri belirlemede faydalı olabilir.
Anımsa:
generate_series(from, to, interval)
burada from ve to tarihler veya timestamp'lerdir ve interval, '1 month' gibi bir sayı ve zaman birimi içeren bir dize olarak belirtilebilir.
Evanston 311 verilerinde hiç talebin oluşturulmadığı günler var mı?
Bu egzersiz, kursun bir parçasıdır
SQL ile Keşifsel Veri Analizi
Egzersiz talimatları
evanston311tablosundakidate_creatediçinmin()vemax()değerleri arasındaki tüm tarihleri almak üzeregenerate_series()kullanan bir alt sorgu yaz.evanston311içindendate_createddeğerlerinin tümünü tarih (date) olarak seçen başka bir alt sorgu yaz.- Her iki alt sorgu da
datetipinde değerler üretmeli (::ifadesini ara). - İlk alt sorgudan gelen tarihlerden (
day), ikinci alt sorgunun sonuçlarındaNOT INolanları seç. Bu,date_creatediçinde yer almayan günleri verir.
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
SELECT day
-- 1) Subquery to generate all dates
-- from min to max date_created
FROM (SELECT generate_series(___(___),
___(___),
___)::___ AS day
-- What table is date_created in?
FROM ___) AS all_dates
-- 4) Select dates (day from above) that are NOT IN the subquery
WHERE day ___
-- 2) Subquery to select all date_created values as dates
(SELECT ___::___
FROM evanston311);