Data Analytics Bootcamp
Data Analytics Bootcamp
How can we
make it happen? = Action
What
will happen? Prescriptive Analytics
Why
did it happen?
Predictive Analytics
What
happened? Diagnostoc Analytics
Value/Maturity
n i n g
ea r
Descriptive Analytics L
n cy
e q ue
Fr
ation
u tom
A
Complexity / Difficulty
MIUUL TM
Data can be modeled Relevant data can be extracted The data from the warehouse The insights need to be
and stored in a from the operational data stores can be combined with other visualized and
database according to certain reporting sources of data, and mined communicated to the right
and analyzing purposes, and using data mining techniques to audience in real time for
stored in a data warehouse generate new insights competitive advantage
MIUUL TM
SEÇ
SELECT
herşeyi
* FROM
DAN Veritabanın
Database
…..
MIUUL TM
Round 0
MIUUL TM
SELECT [Link]
Copyright © Miuul, Inc. All Rights Reserved
SELECT
*
FROM
Customers
SELECT
CategoryID, CategoryName
FROM
Categories
MIUUL TM
SELECT DISTINCT
Country
FROM
Customers
MIUUL TM
WHERE [Link]
Copyright © Miuul, Inc. All Rights Reserved
SELECT
*
FROM
Customers
WHERE Country='Mexico'
SELECT
*
FROM
Customers
WHERE Country= 'Germany' AND City= 'München'
MIUUL TM
WHERE [Link]
Copyright © Miuul, Inc. All Rights Reserved
SELECT
*
FROM
Orders
WHERE OrderDate > '1996-07-04'
SELECT
*
FROM Orders
WHERE YEAR(OrderDate) = 1997
MIUUL TM
ORDER BY [Link]
Copyright © Miuul, Inc. All Rights Reserved
SELECT
*
FROM Customers
ORDER BY Country
SELECT
*
FROM Customers
WHERE Country = 'USA'
ORDER BY City
MIUUL TM
SELECT
TOP 3
*
FROM
Customers
MIUUL TM
SELECT
COUNT(*) as Adet
FROM
Customers
MIUUL TM
Soru: [Order Details] tablosunda Quantity’nin Adet, Ortalama, Toplam ve Max değerini çekiniz
SELECT
COUNT(Quantity) as Adet,
AVG(Quantity) as Ortalama,
SUM(Quantity) as Toplam,
MAX(Quantity) as Maksimum
FROM
[Order Details]
MIUUL TM
LIKE [Link]
Copyright © Miuul, Inc. All Rights Reserved
Soru: Customer tablosunda şehir isimlerinin içerisinde ‘L’ harfi olanları çekiniz
SELECT
*
FROM Customers
WHERE city LIKE '%L%'
MIUUL TM
SELECT
*
FROM
Products
WHERE UnitPrice NOT BETWEEN 10 AND 20
MIUUL TM
BETWEEN [Link]
Copyright © Miuul, Inc. All Rights Reserved
SELECT
*
FROM
Products
WHERE UnitPrice BETWEEN 10 AND 20
MIUUL TM
ALIASES [Link]
Copyright © Miuul, Inc. All Rights Reserved
SELECT
CustomerID AS ID,
ContactName AS Contact
FROM
Customers
MIUUL TM
GROUP BY [Link]
Copyright © Miuul, Inc. All Rights Reserved
SELECT
Country, COUNT(Country)
FROM
Customers
GROUP BY Country
MIUUL TM
GROUP BY [Link]
Copyright © Miuul, Inc. All Rights Reserved
SELECT
Country, COUNT(Country)
FROM
Customers
GROUP BY Country
MIUUL TM
GROUP BY [Link]
Copyright © Miuul, Inc. All Rights Reserved
GROUP BY [Link]
Copyright © Miuul, Inc. All Rights Reserved
SELECT
ProductID, MIN(UnitPrice) AS MinPrice, MAX(UnitPrice) AS MaxPrice
FROM [Order Details]
GROUP BY ProductID
Let’s Start
Round 1
MIUUL TM
Allinas [Link]
Copyright © Miuul, Inc. All Rights Reserved
Soru: Tablodaki CategoryName ve Description kolonların allians ile çekiniz (Top 5 olarak)
SELECT
TOP 5
[Link] KategoriAdları,
[Link] Açıklamalar
FROM
Categories c
MIUUL TM
SELECT
*
FROM
Customers
WHERE
City NOT LIKE '%A%'
MIUUL TM
Soru: PostalCode kolonu boş olan ve Region kolonu dolu olan gözlemlerin filtreleyiniz
SELECT
*
FROM
Customers
WHERE
PostalCode IS NULL
AND Region IS NOT NULL
MIUUL TM
IN [Link]
Copyright © Miuul, Inc. All Rights Reserved
SELECT
*
FROM
Customers
WHERE
City IN ('Berlin' , 'London')
MIUUL TM
NOT IN [Link]
Copyright © Miuul, Inc. All Rights Reserved
SELECT
*
FROM
Customers
WHERE
City NOT IN ('Berlin' , 'London')
MIUUL TM
OR [Link]
Copyright © Miuul, Inc. All Rights Reserved
Soru: Şehir bilgisi London veya Tacoma olan tüm personelin id , ad ve soyad bilgisini çekiniz
SELECT
EmployeeID PersonelId,
FirstName PersonelAdi,
LastName PersonelSoyadi
FROM
Employees
WHERE
City = 'London' or City = 'Tacoma'
Let’s Start
Round 2
MIUUL TM
GROUP BY [Link]
Copyright © Miuul, Inc. All Rights Reserved
SELECT
CategoryID ,
COUNT(CategoryID) adet
FROM
Products
GROUP BY
CategoryID
MIUUL TM
ORDER BY [Link]
Copyright © Miuul, Inc. All Rights Reserved
SELECT
CategoryID ,
MIN(UnitPrice) min_fiyat,
MAX(UnitPrice) max_fiyat,
AVG(UnitPrice) ortalama_fiyat
FROM
Products
GROUP BY
CategoryID
ORDER BY
MAX(UnitPrice) DESC
MIUUL TM
SELECT
[Link], [Link]
FROM
Customers LEFT JOIN Orders ON [Link] = [Link]
MIUUL TM
SELECT
Orders. OrderID, Customers. ContactName
FROM
Orders
INNER JOIN Customers ON [Link] = Customers. CustomerID
MIUUL TM
Join … [Link]
Copyright © Miuul, Inc. All Rights Reserved
MIUUL TM
JOIN [Link]
Copyright © Miuul, Inc. All Rights Reserved
SELECT
[Link] Urun_Adi,
[Link] Şirket_Adi
FROM
Products P
LEFT JOIN Suppliers S ON [Link] = [Link]
MIUUL TM
JOIN [Link]
Copyright © Miuul, Inc. All Rights Reserved
SELECT
[Link] Urun_Adi,
[Link] KategoriAdi
FROM
Products P
INNER JOIN Categories C ON [Link] = [Link]
MIUUL TM
(SELECT
[Link] Urun_Adi,
[Link] Şirket_Adi
FROM
Products P
LEFT JOIN Suppliers S ON [Link] = [Link]) J
GROUP BY Şirket_Adi
MIUUL TM
HAVING [Link]
Copyright © Miuul, Inc. All Rights Reserved
Soru: Kategori bazında toplam fiyatın hesaplanması ve toplam birim fiyatı 200'den düşük
kategorilerin filtrelenyiniz
TOP [Link]
Copyright © Miuul, Inc. All Rights Reserved
SELECT
AVG([Link]) Ortalama_Fiyat
FROM
(SELECT
TOP 5
UnitPrice
FROM
Products
ORDER BY UnitPrice ASC ) AS T
MIUUL TM
SELECT
ProductName
FROM
Products
WHERE
UnitPrice = (SELECT MAX(UnitPrice) FROM Products)
UNION [Link]
Copyright © Miuul, Inc. All Rights Reserved
SELECT
*
FROM
(SELECT TOP 1 * FROM Products ORDER BY UnitPrice DESC) a
UNION
SELECT
*
FROM
(SELECT TOP 1 * FROM Products ORDER BY UnitPrice ASC) b
MIUUL TM
DATEDIFF [Link]
Copyright © Miuul, Inc. All Rights Reserved
Soru: Zamanında teslim edemediğim siparişlerim ID’leri nelerdir ve kaç gün geç gönderildi?
SELECT
OrderID,
DATEDIFF(DAY,ShippedDate,RequiredDate) AS GecikmeSüresi
FROM
Orders
WHERE
DATEDIFF(DAY,ShippedDate,RequiredDate) > 0
MIUUL TM
SELECT
OrderID,
DATEDIFF(DAY,OrderDate,ShippedDate)
FROM Orders
WHERE ShippedDate NOT LIKE 'NULL'
ORDER BY 2 DESC
MIUUL TM
ON [Link]
Copyright © Miuul, Inc. All Rights Reserved
Soru: Hangi kargo şirketine toplam 25000 birimden daha az ödeme yapılmıştır ?
SELECT
[Link],
SUM([Link]) as [Ödenen Ücret]
FROM
Shippers s
INNER JOIN Orders o ON [Link]=[Link]
GROUP BY
[Link]
HAVING
SUM([Link]) <= 25000
MIUUL TM
SELECT
[Link] + ' ' + [Link] CalisanAdi,
SUM([Link] * [Link]) ToplamSatisTutari
FROM
Employees e
INNER JOIN Orders O ON [Link] = [Link]
INNER JOIN [Order Details] OD ON [Link] = [Link]
GROUP BY
[Link] + ' ' +[Link]
MIUUL TM
SELECT
[Link] + ' ' +[Link] CalisanAdi,
COUNT([Link]) AS SatisMiktari
FROM
Orders O
INNER JOIN Employees e ON [Link] = [Link]
GROUP BY
[Link] + ' ' +[Link]
HAVING
COUNT([Link]) > 50
MIUUL TM
+ [Link]
Copyright © Miuul, Inc. All Rights Reserved
SELECT
([Link] + [Link]) as Çalisan,
[Link],
SUM([Link]),
SUM([Link]*[Link])
FROM
Products p
INNER JOIN [Order Details] od ON [Link]=[Link]
INNER JOIN Orders o ON [Link]=[Link]
INNER JOIN Employees e ON [Link]=[Link]
GROUP BY
[Link] + [Link],[Link]
ORDER BY 4 DESC
MIUUL TM
HAVING [Link]
Copyright © Miuul, Inc. All Rights Reserved
SELECT
[Link]
FROM
Categories C
INNER JOIN
(SELECT
CategoryID,
SUM(UnitPrice) toplam_birim_fiyat
FROM
Products
GROUP BY
CategoryID
HAVING
SUM(UnitPrice) <= 200) A ON [Link] = [Link]
MIUUL TM
Soru: En değerli müşterim hangisi? (en fazla satış yaptığım müşteri) (Gelir ve adet bazında)
SELECT
TOP 1
[Link],
SUM([Link]) as adet,
SUM([Link]*[Link]) as gelir
FROM
Customers c
INNER JOIN orders o ON [Link]=[Link]
INNER JOIN [Order Details] od ON [Link]=[Link]
GROUP BY
[Link]
ORDER BY 3 DESC
Let’s Start
Round 3
MIUUL TM
Soru: Discount oranını da hesaba katarak en çok para getiren 5 ürünü bulunuz.
SELECT * FROM (
SELECT *, ROW_NUMBER() OVER(ORDER BY TOTAL_AMOUNT DESC) AS RN
FROM (
SELECT ProductID, ROUND(sum(Amount),0) as Total_Amount
FROM (
SELECT ProductID, UnitPrice * Quantity * (1- Discount) as Amount
FROM [Order Details] ) T1
GROUP BY ProductID
) T2
) T3
WHERE RN <= 5
MIUUL TM
DATEDIFF [Link]
Copyright © Miuul, Inc. All Rights Reserved
Soru: Siparişin verildiği gün ile o ayın son günü arasındaki farkı bulunuz.
HAVING [Link]
Copyright © Miuul, Inc. All Rights Reserved
EXCEPT [Link]
Copyright © Miuul, Inc. All Rights Reserved
Soru: Bir seferinde 100’den fazla quantitysi alınmış ürünlerden olup stocktaki unit sayısı 100
altında olan ürünlerin ID’lerini listeleyiniz.
LAG [Link]
Copyright © Miuul, Inc. All Rights Reserved
Soru: 1997 yılındaki her aya ait toplam miktarı hesaplayıp mevcut ay, o aya ait toplam harcama, bir önceki ve
bir sonra ki aya ait toplam harcama bilgilerini paylaşınız.
COALESCE [Link]
Copyright © Miuul, Inc. All Rights Reserved
Soru: Orders tablosunda Ship Region’ı dolu olanların bilgisini tutan ama boş olanları Ship_City’nin ilk 3 harfini
büyük harf ile gösterecek şekilde alan query’yi yazınız. COALESCE() fonksiyonu, bir ifade listesindeki ilk boş
olmayan değeri döndürmek için kullanılır.
Round 4
MIUUL TM
CASE.. [Link]
Copyright © Miuul, Inc. All Rights Reserved
Soru: "Orders" tablosunu kullanarak, siparişlerin hangi aylarda yapıldığını ve her ay kaç sipariş olduğunu
bulun.
MIUUL TM
DATEPART() [Link]
Copyright © Miuul, Inc. All Rights Reserved
Soru: "Orders" tablosunu kullanarak, siparişlerin hangi aylarda yapıldığını ve her ay kaç sipariş olduğunu
bulan bir SQL sorgusu nasıl oluşturulur?
SELECT
DATEPART(month, [Link]) AS OrderMonth,
COUNT(*) AS OrderCount
FROM
Orders o
GROUP BY
DATEPART(month, [Link])
ORDER BY
OrderMonth;
MIUUL TM
CASE.. [Link]
Copyright © Miuul, Inc. All Rights Reserved
Soru: Ürünleri fiyatlarına göre sıralayarak her ürünün fiyat sıralama numarasını bulun..
MIUUL TM
RANK() [Link]
Copyright © Miuul, Inc. All Rights Reserved
Soru: Ürünleri fiyatlarına göre sıralayarak her ürünün fiyat sıralama numarasını bulun..
SELECT
ProductName,
UnitPrice,
RANK() OVER (ORDER BY UnitPrice) AS PriceRank
FROM
Products
ORDER BY
UnitPrice;
CASE.. [Link]
Copyright © Miuul, Inc. All Rights Reserved
Soru: Siparişleri sipariş tutarına göre eşit parçalara bölün (dörtte birlik dilimlere ayırın)..
MIUUL TM
NTILE() [Link]
Copyright © Miuul, Inc. All Rights Reserved
Soru: Siparişleri sipariş tutarına göre eşit parçalara bölün (dörtte birlik dilimlere ayırın)..
SELECT
OrderID,
CustomerID,
OrderDate,
Freight,
NTILE(4) OVER (ORDER BY Freight) AS FreightQuartile
FROM
Orders
ORDER BY
Freight;
MIUUL TM
CASE.. [Link]
Copyright © Miuul, Inc. All Rights Reserved
Soru: Siparişleri sipariş tutarına göre eşit parçalara bölün (dörtte birlik dilimlere ayırın) ve 4 segment
oluşturun. (Dusuk, Orta, Yuksek, Cok Yuksek)
MIUUL TM
Soru: Siparişleri sipariş tutarına göre eşit parçalara bölün (dörtte birlik dilimlere ayırın) ve 4 segment
oluşturun. (Dusuk, Orta, Yuksek, Cok Yuksek)
SELECT
OrderID,
CustomerID,
OrderDate,
Freight,
CASE
WHEN NTILE(4) OVER (ORDER BY Freight) = 1 THEN 'DUSUK'
WHEN NTILE(4) OVER (ORDER BY Freight) = 2 THEN 'ORTA'
WHEN NTILE(4) OVER (ORDER BY Freight) = 3 THEN 'YUKSEK'
WHEN NTILE(4) OVER (ORDER BY Freight) = 4 THEN 'COK YUKSEK'
END AS FreightQuartile
FROM
Orders
ORDER BY
Freight;
MIUUL TM
CASE.. [Link]
Copyright © Miuul, Inc. All Rights Reserved
Soru: Ürünleri birim fiyatlarına göre ucuz (<10), orta fiyatlı ve pahalı (>50) olarak sınıflandırın.
MIUUL TM
Soru: Ürünleri birim fiyatlarına göre ucuz (<10), orta fiyatlı ve pahalı (>50) olarak sınıflandırın.
SELECT
ProductName,
UnitPrice,
CASE
WHEN UnitPrice < 10 THEN 'Ucuz'
WHEN UnitPrice BETWEEN 10 AND 50 THEN 'Orta Fiyatlı'
WHEN UnitPrice > 50 THEN 'Pahalı'
END AS PriceCategory
FROM
Products;
MIUUL TM
CASE.. [Link]
Copyright © Miuul, Inc. All Rights Reserved
STUFF [Link]
Copyright © Miuul, Inc. All Rights Reserved
SELECT
ContactName,
Address,
STUFF(Address, 1, 0, 'Adres: ') AS ModifiedAddress
FROM
Customers;
MIUUL TM
CTE [Link]
Copyright © Miuul, Inc. All Rights Reserved
CTE, WITH anahtar kelimesi ile başlar ve bir isim (CTE adı) ile tanımlanır
MIUUL TM
CTE [Link]
Copyright © Miuul, Inc. All Rights Reserved
WITH ProductCTE AS (
SELECT
ProductName,
UnitsInStock
FROM
Products
)
-- CTE'yi sorgulama
SELECT
ProductName,
UnitsInStock
FROM
ProductCTE;
MIUUL TM
CTE [Link]
Copyright © Miuul, Inc. All Rights Reserved
CTE [Link]
Copyright © Miuul, Inc. All Rights Reserved
--CTE -- -- -- -- -- -- -- -- -- -- -- --
WITH EmployeeCTE AS (
SELECT EmployeeID CALISAN, YEAR(OrderDate) YIL,SUM(Freight) YIL_CIRO
FROM Orders
GROUP BY EmployeeID, YEAR(OrderDate)
)