17 Mayıs 2014 Cumartesi

SQL'de WITH TIES Kullanımı

  • WITH TIES, ORDER BY ile sıralanan sonuçlarda son kayıt ile aynı değerde olan kayıtların da listelenmesini sağlar. Bu durumda sonuç belirtilen n sayısından daha fazla olabilir.
  • WITH TIES sadece ORDER BY ile birlikte kullanılmaktadır.

NOT : Örnek sorgulamalarda Northwind Database'i kullanacağım. bk: Nortwind Database Kurulumu 

Örnek Sorgu 1: SELECT TOP 3 OrderID, ProductID, quantity FROM [order details] ORDER BY quantity DESC
(Sipariş detayları tablosundan (order details) en yüksek siparişi verilen 3 ürünü listeleyelim.)


TOP n ile çalıştırdığımız sorgularımızı eğer WITH TIES ile çalıştırırsak n den farklı sonuç listesi görebiliriz. Örnek Sorgu 1′de de görüldüğü gibi en çok satış yapılan ilk 3 ürünü sıraladık. Fakat sıradaki 6., 7. ürünler de 120′şer adet satıldıysa? Onlar listeye giremeyecek çünkü biz 3 satır görmek istediğimizi belirttik. Bu gibi durumlarda WITH TIES'e başvuruyoruz. Şimdi aynı sorguya WITH TIES uygulayalım ve sonuçları görelim.

Örnek Sorgu 2: SELECT TOP 3 WITH TIES OrderID, ProductID, quantity FROM [order details] ORDER BY quantity DESC
(Sipariş detayları tablosundan (order details) en yüksek siparişi verilen 3 ürünü listeleyelim.)

 

WITH TIES kullanımında önemli nokta örnek sorgumuzdaki ilk 3 değeri listeledikten sonra en son satıra ait quantity değeri daha varsa onlarıda getirmesidir. İlk sorguda 3 sonuçtan sonuncusunda quantity değerinin 120 olduğunu görmekteyiz. WITH TIES kullanılan sorguda quantity değeri 120 olan bütün değerlerin getirilmesini sağladık. 

SQL'de TOP n, TOP n Percent ve DISTINCT Kullanımları

İlk n Kaydın Görüntülenmesi - TOP n
  • Belirli sayıda satır çekmek için SQL'de TOP ifadesi kullanılır.
  • TOP n ifadesiyle tablonun baştan ilk n satırını çekebiliriz.
  • TOP n veya TOP n PERCENT anahtar kelimeleri ORDER BY  yan tümcesini ile birlikte kullanılmalıdır. Aksi halde listelenen verilerde WHERE ifadesi ile belirtilen koşula uyan kayıtlar rastgele dizileceğinden, istediğimiz sonucu elde edemeyebiliriz.
TOP n Kullanımı : SELECT TOP n * FROM <Tablo Adı>

NOT : Örnek sorgulamalarda Northwind Database'i kullanacağım. bk: Nortwind Database Kurulumu 

Örnek Sorgu 1: SELECT TOP 10 OrderID,ProductID, quantity FROM [order details] ORDER BY quantity DESC
(Sipariş detayları tablosundan (order details) en yüksek siparişi verilen 10 ürünü listeleyelim.) 



Belli Yüzdeli Kayıtların Görüntülenmesi - TOP n Percent
  • Tablodaki kayıtların % n kadarı görüntülenebilir.
  • Örneğin tablomuzda 100 kayıt var ise TOP 10 Percent ifadesi ile bu kayıtların %10'u görüntülenir.
TOP n Percent Kullanımı : SELECT TOP n Percent * FROM <Tablo Adı>

Örnek Sorgu 2: SELECT TOP 5 Percent OrderID,ProductID, quantity FROM [order details] ORDER BY quantity DESC
(Sipariş detayları tablosundan (order details) en yüksek siparişi verilen ürünlerin %5'ini listeleyelim.) 



Tekrarsız Kayıtların Görüntülenmesi - DISTINCT

DISTINCT Kullanımı : SELECT DISTINCT <sütun adı> FROM <tablo adı> [WHERE <koşul>]
  • Bazen veriler arasındaki benzerlikleri kaldırarak sadece benzer olmayanları listeletmek isteyebiliriz. Böyle durumlarda SELECT DISTINCT sadece tek olan (unique) kayıtların sonuç listesinde yer almasını sağlar. 
  • Bir sütunda belirli bir kelime iki veya daha fazla sayıda tekrarlanıyor olabilir. Fakat DISTINCT ile her tekrarlanan kayıt sadece bir kez listelenir.  
  • DISTINCT SQL komutu SELECT komutu ile birlikte kullanılmaktadır.
Örnek Sorgu 3: SELECT DISTINCT City FROM Customers
(Müşteriler (Customers) tablosundaki  Şehir (City) sutunlarını listeleyelim. Ve aynı değerlerin tekrarlanmamasını sağlayalım.) 

1 Mayıs 2014 Perşembe

Linux mtr Komutu

mtr komutu, gitmek istediğimiz ip adresine ulaşıncaya kadar geçtiğimiz ağları tanımlamayı sağlayan komuttur. Kısaca mtr komutu ping ve traceroute komutlarının bir arada yapan bir komuttur. Bu komutun windows sistemlerdeki karşılığı tracert komutudur.

Örneğin terminal ekranımızdan  mtr –report www.google.com yazdığımız zaman karşımıza google.com adresine gidinceye kadar geçilen ağları tek tek listeler. Ayrıca veri paketleri alışverişi sırasında geçen süreyi ve detaylarıda bize verir.


--report parametresini yazmazsak karşımıza anlık olarak değişen bir tablo çıkar. Yukarıdaki resimde, www.google.com adresine gidene kadar geçtiğimiz ağ geçitleri ve anlık olarak gönderilen veri paketlerinin istatistikleri yer almaktadır.   

man mtr  komutuyla mtr komutunun kullanımı ve parametleri hakkında detaylı bilgi alabilirsiniz.

man mtr komutu çıktısı için tıklayınız.

Linux inxi Hardware Bilgilerinin Raporlanması

Bu yazımda sistem bilgilerinin raporlanmasına yönelik bir linux aracından bahsedeceğim. 

Linux işletim sisteminde Hardware bilgilerinin raporlanması için hazırlanmış bir çok araç bulunmasına rağmen "inxi"  linux dağıtımınlarının çoğunda sorunsuz çalışabilen birçok linux komutunu kullanarak bizlere detaylı raporlar sunan bir shell scriptidir.


Bir shell script olduğu için, bu scripti kullanıcılara ait programların olduğu dizine (usr/local/bin) koyarak, kurulumunu yapmış oluruz. Kullanabilmek için ek olarak gawk paketini de kurmamız gerekmekte.

Not : Kurulum Debian tabanlı anlatılmaktadır. RHEL tabanlı herhangi bir dağıtım kullanıyorsanız  sisteme pcutils paketini kurmanız gerekecektir.

inxi Kurulumu ve Kullanımı

Kurulum için uygulamamız gereken terminal komutu : 

# apt-get install gawk
# cd /usr/local/bin && wget -Nc smxi.org/inxi && chmod +x inxi

Tüm sistem bileşenleri ile ilgili özet bir bilgi almak için inxi’yi -F parametresini kullanıyoruz.

-f parametresi cpu bilgilerini flag’leri ile birlikte verir :


-r parametresi, linux dağıtımınızın paket yöneticisine ait repo bilgilerini verir :


inxi parametre listesinin tamamına buradan erişebilirsiniz
https://code.google.com/p/inxi/wiki/inxi

28 Nisan 2014 Pazartesi

SQL'de AVG, MAX, MIN, SUM, COUNT Fonksiyonlarının Kullanımları

Aggregate Function (Hesaplama Fonksiyonları)

Bazen tablolar üzerinde kayıtların listelenmesi yerine kayıtlar üzerinde hesaplamalar yaptırarak sonuçların listelenmesine ihtiyaç duyarız. Bu nedenle tüm kayıtları döndürmeden sadece matematiksel sonuçlar döndürmemiz gerekebilir. SQL bu gibi durumlar için özel fonksiyonlar sunmaktadır. Bu Fonksiyonlara Aggregate Function (Hesaplama Fonksiyonları) denir.

Peki bu fonksiyonlar bizlere neler sunmaktadır ;
  • Sutundaki tüm değerlerin toplamını bulmak.
  • Sutundaki tüm degerlerin ortalamasını bulmak.
  • Sutundaki en büyük veya en küçük değeri bulmak.
  • Toplam kayıt sayılarını hesaplamak.
Aggregate Function (Hesaplama Fonksiyonları)


Not : Hesaplama fonksiyonları kullanılırken NULL değerler dikkate alınmamaktadır.


 

MAX ve MIN Fonksiyonları Kullanımı
  • MAX fonksiyonu, bir sütundaki en yüksek değeri verir. 
  • Boş (NULL) değerler işleme katılmaz. 
  • MAX fonksiyonu alfabetik sıralamadaki ilk metinsel ifadeyi de bulmamızı sağlar.
  • MIN fonksiyonu bir sütundaki kayıtlardaki en küçük değeri verir. 
  • Boş (NULL) değerler işleme katılmaz.   
  • MIN fonksiyonuda MAX fonksiyonu gibi alfabetik sıralamadaki son metinsel ifadeyi  bulmamızı sağlar
NOT : Örnek sorgulamalarda Northwind Database'i kullanacağım. bk: Nortwind Database Kurulumu 

Örnek Sorgu 1: SELECT MAX(UnitPrice) AS Maksimum_Fiyat FROM Products
(Ürünler (Products) tablosundaki en yüksek fiyatlı ürünü listeleyelim.)  
 
 
Örnek Sorgu 2: SELECT MIN(UnitPrice) AS Minimum_Fiyat FROM Products
(Ürünler (Products) tablosundaki en küçük fiyatlı ürünü listeleyelim.) 


Örnek Sorgu 3: SELECT MAX(CompanyName) AS En_Sondaki_Müşteri FROM Customers
(Alfabetik listeye göre en sonda yer alan müşteriyi görüntüleyelim.)  
 
 
SUM, AVG ve COUNT Fonksiyonları Kullanımı
  • SUM fonksiyonu belirtilen sütundaki sayısal değerlerin bir toplamını geri döndürür. 
  • AVG fonksiyonu belirtilen sütundaki ortalama değeri verir. 
  • AVG hesaplama sırasında boş (NULL) değerleri işleme almaz.
  • SQL'de COUNT Kullanımı için tıklayınız.
Örnek Sorgu 4: SELECT SUM(Quantity) AS Toplam_Ürün FROM [Order Details]
(Toplam kaç adet malın sipariş verildiğini bulalım.) 


Örnek Sorgu 5: SELECT AVG(DISTINCT UnitPrice) AS tekil_ortalama_deger  FROM Products WHERE SupplierID = 22
(22 kayıt numaralı tedarikçiye ait ürünlerin tekil değerilerinin ortalama fiyatını almak isteyelim.) 
 

Copyright 2013-2017 | İbrahim BAYRAKTAR /dev/null Web Günlüğü