SQL – Puzzle 10 – Nasıl Gideceğiz? – How Will We Go?

Geçen hafta iş yerindeki ekiple kahvaltıya gidelim dedik. Kimlerde araç olduğu ve kimlerin hangi araçlara dağılacağı görevi de bana düştü. Bu organizasyonu excel’de yaparken, aklıma bunu SQL – Puzzle’a çevirmek geldi.

Toplam 19 kişi var. 5’inin aracı var. Kalan 14 kişiyi araçlara rastgele dağıtmanızı bekliyorum. Her bir araçta 1 araç sahibi (şoför) 3 de yolcu olacak şekilde dağıtmanız gerekiyor. Tabi ki bi araca mecburen 2 yolcu kalıyor. Çünkü toplamda 20 değil, 19 yolcu var.

We planned having a breakfast last week. Organization of cars and passangers was assigned to me. Of course I opened new sheet in Excel and started arrangements. And I realized that it can be SQL – Puzzle!

There are 19 coworkers and 5 of them has their car. Rest of them is 14 passangers . Each car must have 1 driver(owner) and 3 random passengers. Of course one of the car will have 2 passengers. Because there are 19 passanger at total, not 20.

Continue reading

SQL – Puzzle 9 – Sonraki İş Gününü Bulma

Resmi tatilleri ve haftasonlarını da dikkate alarak, bir sonraki ve iki sonraki iş günlerini SQL ile bulmanızı bekliyorum. “tarihler” isimli 1. tabloda 2022 yılına ait tüm tarihler, “resmi_tatiller” isimli 2. tabloda ise tüm tatil günleri yer almaktadır. “sonuc” isimli 3. Tablo ise, minus yapabilmeniz için sizden beklenen final tablo bulunmaktadır.

Continue reading

SQL – Puzzle 8 – Çoklama

2 tabloda da 1 er kayıt var. Joinlenecek sütundaki datalar birebir aynı. Fakat full join yapıldığı zaman çoklama oluyor. Neden çokluyor, çözüm nedir ? ( group by min veya max la çözerim demeyin lütfen 🙂 )

There are 2 tables. Each of them have 1 record and their data of join columns same. But when I use full join, it duplicates recod. Why result looks duplicate, how can we fix it ? ( please don’t say that your solution is group by with min or max )

Continue reading

SQL – Puzzle 7 – Min Max

Aşağıdaki resimde görüldüğü gibi; elimizde STN1 ve STN2 bazlı unique(tekil) veri var. 3. sütunu siz oluşturup dolduracaksınız. STN1 bazlı, minimum STN2 değerini ilk satıra, maksimum STN2 değerini son satıra yazacaksınız, aradaki kısım NULL olacak.
As you see at the screenshot below, data is unique according to STN1 and STN2. You will calculate the STN3 column. STN3 will be filled with minimum STN2 and maximum STN2 but it must be according to STN1 and only first and last cell must be filled.

Continue reading

SQL – Puzzle 1

5×5 boş matristen, aşağıdaki datayı üretiniz. 5×5 empty matrix is given. Matrix will be populated according to the screenshot below.

puzzle 1
Continue reading

SQL – NULL KULLANIMI (NULL İLE EŞİTTİR İŞARETİ KULLANILMAZ)

NULL, SQL dilinde bilinmeyen/belirsiz anlamındadır. Bu sebeple NULL değerini = (eşittir) veya <> (eşit değildir) sembolü ile kullanamayız. Bunun yerine IS veya IS NOT keyword’lerini kullanırız. Bir kaç basit örnekte konuyu daha iyi anlayacaksınız.

SELECT * FROM dual WHERE 1=1;

Sonuç:   x

SELECT * FROM dual WHERE null=null;

Sonuç:   no rows selected. Yani hiç bir değer dönmez. Çünkü bilinmeyen=bilinmeyen gibi bir karşılaştır yaptık az önce ve bu sebeple bir sonuç dönmedi. Onun yerine IS kullansaydık sonuç dönecekti.

Continue reading

SQL % _ ‘ ÖZEL KARAKTER ARATMAK (ESCAPE)

Veritabanında kayıtlı verilerimizin içinde % , _ ‘ , gibi değerler aratabilmek için escape karakteri kullanmamız gerekir.  Aksi halde veritabanında aradığımız sonucu bulamayız. % ve _ (yüzde ve alt tire) aratırken genel mantık şu şekilde olacaktır: %’nin veya _’nin başına * , / , \  gibi herhangi bir karakter ekleyiniz. Where’in sonuna ESCAPE yazıp tırnak içinde arattığınız özel kelimenin önüne eklediğiniz karakteri giriniz. Örnekle açıklamak gerekirse

Not: ESCAPE yalnızca 1 karakter alır. Eğer 1 den fazla karakter girerseniz. ORA-01425: escape character must be character string of length 1 hatasını alırsınız.

Continue reading