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 6

Database’deki bir tablosundan, SQL ile HTML tablo kodu üretiniz. Kaynak verisetini, istenen görüntüyü, istenen html kod blogunu compact ve açık halini aşağıda bulabilirsiniz. HTML kodunun formatında özgürsünüz. HTML kodunuzu test etmek için, HTML çıktı kodunuzu notepad’e yapıştırıp, uzantısını HTML olarak değiştirip, tarayıcıda görüntüleyin.
Generate HTML table code from database table. Dataset code, expected output, expected HTML code in compact and formatted way are given below. You are free in HTML output format. To test your HTML code You can copy-paste your code to your Notepad and change the extension and open the file in browser.

Continue reading

SQL – Puzzle 5

24 saatlik ( sütunluk) bir tablomuz var. İlk sütunda “g” bilgisi var. Belirli adet boşuk bırakılıp, tekrar “g” bilgisi ilgili sütuna yazılıyor. Bu iş rutin olarak devam ediyor. Elimizde ilk 12 saatlik ( sütunluk) bilgi var. Buna bakarak kalan sütunların datasını bizim tahmin etmemiz bekleniyor. Aşağıdaki resim üzerinden de açıklamaya çalıştım. Puzzle’ın çözülmesi için gerekli script’i aşağıda ve GitHub hesabımda paylaştım.

Continue reading

SQL – Puzzle 4 – Baklava :)

İlteriş Mutlu, baklava ve SQL’in birleştiği bu leziz puzzle’ı, iftiharla sunar.

Elimizde şerbetli tatlı satan bir dükkanın cafe kısmındaki satışlarının olduğu tablo var. Amaç; en fazla satılan 5 ürünü tespit edip, cebinde 30 tl, 50tl, 60tl,80tl,120tl v.s. olan müşteriler için sırayla en çok satılan ürünlere göre tabak sunmaktır. Eğer 5 ürünü tabağa koyduktan sonra hala para kalmışsa, en çok satılan sıralı 5’liden 2. adetleri de tabağa koymalıyız. Örneğin, benim verdiğim datalara göre 60 tl yi geçmiyecek bir tabak hazırlanmak istenirse, sırası ile en çok satılan ürünlere göre 5 tatlının hepsi alınabiliyor. 60tl ‘den fazla parası olan kişi en çok satılan ürünlerden sırayla birer adet daha alabiliyor. Ekran çıktısı üzerinden açıklamak daha kolay olacaktır.

Continue reading

SQL – Puzzle 3

Two tables are given as shown picture below. First columns are unique. You should join and generate target table as shown picture below. Target table must contains all data. But there is a exception. If second column (col_2) of the first table (tbl_1) is “-1”, surpluss(excess) data of second table (tbl_2) will match col_2= “-1” row. In other words, surpluss(excess) data of tbl_2, will be match “-1”. If there is no “-1” then new row will be add. All data of tbl_1 and tbl2 must be included in target table. note: col_2 of tbl_2 can not be “-1”. But col_2 of tbl_1 has some “-1”. The scenario looks like foolish but I come across it at work 🙂

Aşağıdaki resimde gözüken 2 tablo verilmiştir. Bu tabloların ilk iki sütunu unique’dir. Bu iki tabloyu joinleyip, aşağıdaki target tabloyu oluşturmanız beklenmektedir. Target tabloda tbl_1 ve tbl_2 den gelen tüm data olmak zorundadır. Fakat şöyle bir istisna var. İkinci tablodaki (tbl_2) fazla datayı, birinci tablo ( tbl_1) ikinci sütunda ( tbl_2) “-1” olanın olduğu satıra yazılacak. Eğer tbl_1 de -1 li kayıt yoksa yeni satır olarak gelecek. Not: tbl_1 deki col_2 sütunu -1 değer alabilir fakat tbl_2’deki col_2 sütunu -1 değerini alamaz. Senaryo saçma gibi gözükebilir ama geçenlerde iş yerinde böyle bir durumla karşılaştım 🙂

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