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
SQL ile Keşifsel Veri Analizi
kursunun bir parçasıdırEgzersiz 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ı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
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);