Ana içeriğe geç
Kesit SQL
Orta · Sertifika Hazırlık

BigQuery laboratuvarı: Google veri analitiği yazımıyla uygulama

Google Data Analytics ve BigQuery tabanlı işlerde sık kullanılan yapılar: QUALIFY, COUNTIF, SAFE_DIVIDE, DATE_TRUNC, EXCEPT DISTINCT, SELECT * EXCEPT ve takvim üretme.

Uygulamada aç, 9 alıştırmayı çözÜcretsiz, hesap gerekmez, kurulum yok.

Bu sayfa dersin okuma sürümüdür. Metin bir kutuyu çalıştırmanı ya da adıma geçmeni söylüyorsa dersi uygulamada aç.

Google'ın veri analitiği programı ve bulut veri sertifikaları SQL'i BigQuery üzerinde öğretir. Bu laboratuvardaki her şey BigQuery yazımıyla çalışır.

Sınav bilgisiSoru sayısı, süre, geçme notu ve kayıt koşulları zaman zaman değişir. Kayıt olmadan önce sınav sağlayıcısının sayfasındaki güncel konu listesini ve bilgileri kontrol et. Buradaki denemeler resmi soruların kopyası değildir; aynı konu alanlarını ölçer.

1. Pencere sonucuna göre filtre: QUALIFY

SELECT category, name, price
FROM products
WHERE TRUE
QUALIFY ROW_NUMBER() OVER (PARTITION BY category ORDER BY price DESC) = 1;

2. Koşullu sayım ve güvenli bölme

SELECT device,
       COUNT(DISTINCT user_id) AS kullanici,
       COUNTIF(event_type = 'purchase') AS satin_alma,
       ROUND(SAFE_DIVIDE(COUNTIF(event_type = 'purchase'), COUNT(*)) * 100, 2) AS olay_orani
FROM web_events
GROUP BY device;

3. Tarihler

SELECT DATE_TRUNC(DATE '2024-05-17', MONTH) AS ay_basi,
       DATE_DIFF(DATE '2024-12-31', DATE '2024-12-01', DAY) AS gun,
       FORMAT_DATE('%Y-%m', DATE '2024-05-17') AS ay,
       EXTRACT(DAYOFWEEK FROM DATE '2024-05-19') AS haftanin_gunu,
       LAST_DAY(DATE '2024-02-10') AS ay_sonu;

DAYOFWEEK pazar için 1, cumartesi için 7 döndürür.

4. Takvim üretme: GENERATE_DATE_ARRAY

Boş günleri de göstermek için önce tarih dizisi üret, UNNEST ile satırlara aç, sonra LEFT JOIN yap.

SELECT gun, COUNT(o.order_id) AS siparis
FROM UNNEST(GENERATE_DATE_ARRAY(DATE '2024-12-01', DATE '2024-12-07')) AS gun
LEFT JOIN orders o ON o.order_date = gun
GROUP BY gun
ORDER BY gun;

5. Kısayollar

SELECT * EXCEPT (email) FROM customers ORDER BY customer_id LIMIT 3;
SELECT customer_id FROM customers
EXCEPT DISTINCT
SELECT customer_id FROM orders;
Maliyet hatırlatmasıİsteğe bağlı fiyatlandırmada taranan bayt ücretlendirilir. SELECT * yerine gereken sütunları seçmek ve bölüm sütununa filtre koymak taramayı azaltır; LIMIT ise kümelenmemiş tabloda taramayı azaltmaz.
Alıştırmalara geç (9)