SQL · DERS 02

WHERE ile filtreleme

Rapora yalnızca 80 TL ve üzeri siparişleri alacaksın. SELECT sonuçta hangi sütunların görüneceğini, WHERE hangi satırların kalacağını belirler.

1. Sipariş tablosundan satır seç

orders tablosu
order_idcityamount
A1Adıyaman120
A2Ankara80
A3Adıyaman50
SELECT order_id, amount
FROM orders
WHERE amount >= 80;

Koşulu sağlayan A1 ve A2 kalır. Tam 80 TL olan A2, eşitliğe izin verdiğimiz için dahil edilir.

2. Çıktıyı tahmin et

>= 80 yerine > 80 yazarsan hangi sipariş sonuçtan çıkar?

İpucu al

Eşiğe tam eşit olan satırı bul.

Çözümü göster

A2 çıkar. Yalnızca 120 TL tutarındaki A1 kalır.

3. Parantez hatasını bul

Adıyaman ve Ankara siparişlerinden yalnızca 80 TL ve üzerindekiler isteniyor. Aşağıdaki sorgu neden 50 TL’lik A3’ü de getiriyor?

SELECT order_id, city, amount
FROM orders
WHERE city = 'Adıyaman' OR city = 'Ankara' AND amount >= 80;
İpucu al

AND, OR’dan önce değerlendirilir. Tutar koşulu hangi şehre uygulanıyor?

Çözümü göster

İlk sorgu Adıyaman’daki her siparişi kabul eder. İki şehri parantez içine alırsan tutar koşulu ikisine de uygulanır. Sonuçta A1 ve A2 kalır.

SELECT order_id, city, amount
FROM orders
WHERE (city = 'Adıyaman' OR city = 'Ankara')
  AND amount >= 80;

Junior veri analisti mülakat sorusu

Bir kampanya iki şehirdeki 80 TL ve üzeri siparişleri kapsıyor. Filtrenin doğru çalıştığını nasıl test edersin?

Örnek yanıt

Her iki şehirde de 79, 80 ve 81 TL’lik kayıtları kontrol ederim. 79 hariç, 80 ve 81 dahil olmalı. Ayrıca kampanya dışı bir şehirden 100 TL’lik sipariş ekler, onun da hariç kaldığını doğrularım.

← Önceki ders · Sıradaki ders · ORDER BY ve LIMIT →

Etkileşimli laboratuvarı aç →