SQL Medyan Hesaplama

SQL Medyan Hesaplama

Aritmetik ortalama hesaplama esnasında veri seti içinde özellikle çok büyük veya küçük bir değer varsa sonuç yanıltıcı olabilir. Medyan ise hesap yapılan verilerin içinde hataya neden olan uç veya hatalı değerleri tolere eder ve daha sağlıklı ortalama sonuç verir.

MS SQL de Percentile_Cont fonksiyonu sayesinde Medyan hesaplamak mümkündür. Öncelikle bir veri seti için geçici bir tablo oluşturalım. SQL veri seti aşağıdaki linkte TSQL kodu olarak verilmiştir.

Şehirler SQL Veri Seti Linki burada bulunan sql kopyanıp kullanılabilir.

Oluşturulan tablo aşağıdaki gibidir.

SELECT * FROM #SEHIRLER

PLAKA KODU TELEFON ALAN KODU ŞEHİR BÖLGE ALAN KM2 NUFUS RAKIM BÜYÜKŞEHİR Mİ
01 322 ADANA AKDENİZ BÖLGESİ 13.844 2.237.940 25 BÜYÜKŞEHİR
02 416 ADIYAMAN GÜNEYDOĞU BÖLGESİ 7.337 626.465 701  
03 272 AFYONKARAHİSAR EGE BÖLGESİ 14.016 729.483 1012  
04 472 AĞRI DOĞU ANADOLU BÖLGESİ 11.099 536.199 1630  
05 358 AMASYA KARADENİZ BÖLGESİ 5.628 337.800 400  
06 312 ANKARA İÇ ANADOLU BÖLGESİ 25.632 5.639.076 905 BÜYÜKŞEHİR
07 242 ANTALYA AKDENİZ BÖLGESİ 20.177 2.511.700 62 BÜYÜKŞEHİR
08 466 ARTVİN KARADENİZ BÖLGESİ 7.393 170.875 530  
09 256 AYDIN EGE BÖLGESİ 8.116 1.110.972 92 BÜYÜKŞEHİR
10 266 BALIKESİR MARMARA BÖLGESİ 14.583 1.228.620 145 BÜYÜKŞEHİR
11 228 BİLECİK MARMARA BÖLGESİ 4.179 219.427 513  
12 426 BİNGÖL DOĞU ANADOLU BÖLGESİ 8.004 279.812 1159  
13 434 BİTLİS DOĞU ANADOLU BÖLGESİ 8.294 348.115 1637  
14 374 BOLU KARADENİZ BÖLGESİ 8.313 316.126 741  
15 248 BURDUR AKDENİZ BÖLGESİ 7.175 270.796 963  
16 224 BURSA MARMARA BÖLGESİ 10.813 3.056.120 238 BÜYÜKŞEHİR
17 286 ÇANAKKALE MARMARA BÖLGESİ 9.817 542.157 11  
18 376 ÇANKIRI İÇ ANADOLU BÖLGESİ 7.542 195.789 730  
19 364 ÇORUM KARADENİZ BÖLGESİ 12.428 530.864 822  
20 258 DENİZLİ EGE BÖLGESİ 12.134 1.037.208 392 BÜYÜKŞEHİR
21 412 DİYARBAKIR GÜNEYDOĞU BÖLGESİ 15.168 1.756.353 674 BÜYÜKŞEHİR
22 284 EDİRNE MARMARA BÖLGESİ 6.145 413.903 50  
23 424 ELAZIĞ DOĞU ANADOLU BÖLGESİ 9.383 591.098 1041  
24 446 ERZİNCAN DOĞU ANADOLU BÖLGESİ 11.815 234.747 1216  
25 442 ERZURUM DOĞU ANADOLU BÖLGESİ 25.006 762.062 1923 BÜYÜKŞEHİR
26 222 ESKİŞEHİR İÇ ANADOLU BÖLGESİ 13.960 887.475 796 BÜYÜKŞEHİR
27 342 GAZİANTEP GÜNEYDOĞU BÖLGESİ 6.803 2.069.364 838 BÜYÜKŞEHİR
28 454 GİRESUN KARADENİZ BÖLGESİ 7.025 448.400 14  
29 456 GÜMÜŞHANE KARADENİZ BÖLGESİ 6.668 164.521 1174  
30 438 HAKKARİ DOĞU ANADOLU BÖLGESİ 7.095 280.991 1756  
31 326 HATAY AKDENİZ BÖLGESİ 5.524 1.628.894 89 BÜYÜKŞEHİR
32 246 ISPARTA AKDENİZ BÖLGESİ 8.946 444.914 1058  
33 324 MERSİN AKDENİZ BÖLGESİ 16.010 1.840.425 18 BÜYÜKŞEHİR
34 212-216 İSTANBUL MARMARA BÖLGESİ 5.461 15.519.267 25 BÜYÜKŞEHİR
35 232 İZMİR EGE BÖLGESİ 11.891 4.367.251 9 BÜYÜKŞEHİR
36 474 KARS DOĞU ANADOLU BÖLGESİ 10.193 285.410 1756  
37 366 KASTAMONU KARADENİZ BÖLGESİ 13.064 379.405 814  
38 352 KAYSERİ İÇ ANADOLU BÖLGESİ 16.970 1.407.409 1060 BÜYÜKŞEHİR
39 288 KIRKLARELİ MARMARA BÖLGESİ 6.459 361.836 231  
40 386 KIRŞEHİR İÇ ANADOLU BÖLGESİ 6.584 242.938 991  
41 262 KOCAELİ MARMARA BÖLGESİ 3.397 1.953.035 4 BÜYÜKŞEHİR
42 332 KONYA İÇ ANADOLU BÖLGESİ 40.838 2.232.374 1023 BÜYÜKŞEHİR
43 274 KÜTAHYA EGE BÖLGESİ 11.634 579.257 958  
44 422 MALATYA DOĞU ANADOLU BÖLGESİ 12.259 800.165 970 BÜYÜKŞEHİR
45 236 MANİSA EGE BÖLGESİ 13.339 1.440.611 79 BÜYÜKŞEHİR
46 344 KAHRAMANMARAŞ AKDENİZ BÖLGESİ 14.520 1.154.102 562 BÜYÜKŞEHİR
47 482 MARDİN GÜNEYDOĞU BÖLGESİ 8.780 838.778 938 BÜYÜKŞEHİR
48 252 MUĞLA EGE BÖLGESİ 12.654 983.142 659 BÜYÜKŞEHİR
49 436 MUŞ DOĞU ANADOLU BÖLGESİ 8.650 408.809 1334  
50 384 NEVŞEHİR İÇ ANADOLU BÖLGESİ 5.485 303.010 1197  
51 388 NİĞDE İÇ ANADOLU BÖLGESİ 7.234 362.861 1239  
52 452 ORDU KARADENİZ BÖLGESİ 5.861 754.198 25 BÜYÜKŞEHİR
53 464 RİZE KARADENİZ BÖLGESİ 3.835 343.212 11  
54 264 SAKARYA MARMARA BÖLGESİ 4.824 1.029.650 41 BÜYÜKŞEHİR
55 362 SAMSUN KARADENİZ BÖLGESİ 9.725 1.348.542 10 BÜYÜKŞEHİR
56 484 SİİRT GÜNEYDOĞU BÖLGESİ 5.717 330.280 887  
57 368 SİNOP KARADENİZ BÖLGESİ 5.717 218.243 27  
58 346 SİVAS İÇ ANADOLU BÖLGESİ 28.164 638.956 1313  
59 282 TEKİRDAĞ MARMARA BÖLGESİ 6.190 1.055.412 28 BÜYÜKŞEHİR
60 356 TOKAT KARADENİZ BÖLGESİ 10.042 612.747 630  
61 462 TRABZON KARADENİZ BÖLGESİ 4.628 808.974 36 BÜYÜKŞEHİR
62 428 TUNCELİ DOĞU ANADOLU BÖLGESİ 7.582 84.660 922  
63 414 ŞANLIURFA GÜNEYDOĞU BÖLGESİ 19.242 2.073.614 527 BÜYÜKŞEHİR
64 276 UŞAK EGE BÖLGESİ 5.555 370.509 915  
65 432 VAN DOĞU ANADOLU BÖLGESİ 20.921 1.136.757 1728 BÜYÜKŞEHİR
66 354 YOZGAT İÇ ANADOLU BÖLGESİ 13.690 421.200 1317  
67 372 ZONGULDAK KARADENİZ BÖLGESİ 3.342 596.053 10  
68 382 AKSARAY İÇ ANADOLU BÖLGESİ 7.659 416.367 1228  
69 458 BAYBURT KARADENİZ BÖLGESİ 3.746 84.843 1555  
70 338 KARAMAN İÇ ANADOLU BÖLGESİ 8.678 253.279 1063  
71 318 KIRIKKALE İÇ ANADOLU BÖLGESİ 4.791 283.017 746  
72 488 BATMAN GÜNEYDOĞU BÖLGESİ 4.477 608.659 570  
73 486 ŞIRNAK GÜNEYDOĞU BÖLGESİ 7.078 529.615 1343  
74 378 BARTIN KARADENİZ BÖLGESİ 2.330 198.249 12  
75 478 ARDAHAN DOĞU ANADOLU BÖLGESİ 4.934 97.319 1799  
76 476 IĞDIR DOĞU ANADOLU BÖLGESİ 3.664 199.442 860  
77 226 YALOVA MARMARA BÖLGESİ 798 270.976 8  
78 370 KARABÜK KARADENİZ BÖLGESİ 4.142 248.458 264  
79 348 KİLİS GÜNEYDOĞU BÖLGESİ 1.412 142.490 660  
80 328 OSMANİYE AKDENİZ BÖLGESİ 3.320 538.759 121  
81 380 DÜZCE KARADENİZ BÖLGESİ 2.492 392.166 149  

Bölgelere göre rakımların medyanını hesaplayan T-SQL sorgusu:

SELECT BOLGE,MEDYAN
FROM
(SELECT BOLGE,PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY RAKIM) OVER (PARTITION BY BOLGE) AS MEDYAN
FROM #SEHIRLER) AS A1
GROUP BY BOLGE,MEDYAN
ORDER BY BOLGE 

BOLGE MEDYAN
AKDENİZ BÖLGESİ 105
DOĞU ANADOLU BÖLGESİ 1482
EGE BÖLGESİ 525,5
GÜNEYDOĞU BÖLGESİ 701
İÇ ANADOLU BÖLGESİ 1060
KARADENİZ BÖLGESİ 206,5
MARMARA BÖLGESİ 41


İlgili Yazılar