{"id":40666,"date":"2026-02-28T11:40:42","date_gmt":"2026-02-28T08:40:42","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=40666"},"modified":"2026-02-28T11:40:42","modified_gmt":"2026-02-28T08:40:42","slug":"sql-select-ifadesi-ve-count-fonksiyonu-veri-sayimi-ve-analizinde-derinlemesine-bir-bakis","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/sql-select-ifadesi-ve-count-fonksiyonu-veri-sayimi-ve-analizinde-derinlemesine-bir-bakis\/","title":{"rendered":"SQL SELECT \u0130fadesi ve COUNT() Fonksiyonu: Veri Say\u0131m\u0131 ve Analizinde Derinlemesine Bir Bak\u0131\u015f"},"content":{"rendered":"<p><body><\/p>\n<h2>SQL SELECT \u0130fadesi ve COUNT() Fonksiyonu: Veri Say\u0131m\u0131 ve Analizinde Derinlemesine Bir Bak\u0131\u015f<\/h2>\n<p>Veritaban\u0131 y\u00f6netim sistemlerinin (DBMS) temel ta\u015f\u0131 olan SQL (Structured Query Language), veriyi sorgulamak, manip\u00fcle etmek ve y\u00f6netmek i\u00e7in kullan\u0131lan g\u00fc\u00e7l\u00fc bir dildir. SQL&#8217;in en s\u0131k kullan\u0131lan ifadelerinden biri olan <code>SELECT<\/code>, veritaban\u0131ndan veri \u00e7ekmek i\u00e7in kullan\u0131l\u0131rken, bu veriler \u00fczerinde \u00e7e\u015fitli hesaplamalar yapmak i\u00e7in de toplama (aggregate) fonksiyonlar\u0131ndan faydalan\u0131l\u0131r. Bu toplama fonksiyonlar\u0131 aras\u0131nda belki de en temeli ve en yayg\u0131n kullan\u0131lan\u0131 <code>COUNT()<\/code> fonksiyonudur. <code>COUNT()<\/code> fonksiyonu, belirli bir ko\u015fulu sa\u011flayan sat\u0131rlar\u0131n veya benzersiz de\u011ferlerin say\u0131s\u0131n\u0131 bulmam\u0131z\u0131 sa\u011flayarak, veri analizi ve raporlama s\u00fcre\u00e7lerinde kritik bir rol oynar.<\/p>\n<p>Bu makalede, SQL <code>SELECT<\/code> ifadesi ba\u011flam\u0131nda <code>COUNT()<\/code> fonksiyonunun detaylar\u0131n\u0131, farkl\u0131 kullan\u0131m senaryolar\u0131n\u0131, di\u011fer SQL yan t\u00fcmceleriyle (WHERE, GROUP BY, HAVING) nas\u0131l entegre edildi\u011fini, performans ipu\u00e7lar\u0131n\u0131 ve s\u0131k yap\u0131lan hatalar\u0131 kapsaml\u0131 bir \u015fekilde inceleyece\u011fiz. Amac\u0131m\u0131z, <code>COUNT()<\/code> fonksiyonunun temelden ileri seviyeye kadar t\u00fcm y\u00f6nlerini a\u00e7\u0131klayarak, okuyucular\u0131n veritaban\u0131 sorgulama becerilerini geli\u015ftirmelerine yard\u0131mc\u0131 olmakt\u0131r.<\/p>\n<h3>COUNT() Fonksiyonuna Giri\u015f ve Temel Kullan\u0131m\u0131<\/h3>\n<p><code>COUNT()<\/code> fonksiyonu, SQL&#8217;deki bir toplama (aggregate) fonksiyonudur. Toplama fonksiyonlar\u0131, bir grup sat\u0131r \u00fczerinde hesaplama yaparak tek bir \u00f6zet de\u011fer d\u00f6nd\u00fcr\u00fcr. <code>COUNT()<\/code> ise bu grubun i\u00e7indeki sat\u0131r say\u0131s\u0131n\u0131 veya belirli bir s\u00fctundaki benzersiz, bo\u015f olmayan de\u011ferlerin say\u0131s\u0131n\u0131 d\u00f6nd\u00fcr\u00fcr. Veri k\u00fcmesinin b\u00fcy\u00fckl\u00fc\u011f\u00fcn\u00fc anlamak, raporlamalar i\u00e7in temel metrikler olu\u015fturmak veya belirli ko\u015fullar\u0131 sa\u011flayan kay\u0131tlar\u0131n say\u0131s\u0131n\u0131 belirlemek gibi pek \u00e7ok senaryoda vazge\u00e7ilmezdir.<\/p>\n<p><code>COUNT()<\/code> fonksiyonunun temel olarak iki ana kullan\u0131m \u015fekli vard\u0131r:<\/p>\n<p>1.  <strong><code>COUNT(*)<\/code>:<\/strong> Belirtilen tablodaki veya sorgu sonucundaki t\u00fcm sat\u0131rlar\u0131n say\u0131s\u0131n\u0131 d\u00f6nd\u00fcr\u00fcr. <code>NULL<\/code> de\u011ferleri i\u00e7eren sat\u0131rlar da dahil olmak \u00fczere her sat\u0131r\u0131 sayar.<br \/>\n2.  <strong><code>COUNT(kolon_ad\u0131)<\/code>:<\/strong> Belirtilen s\u00fctundaki <code>NULL<\/code> olmayan de\u011ferlerin say\u0131s\u0131n\u0131 d\u00f6nd\u00fcr\u00fcr. S\u00fctunda <code>NULL<\/code> de\u011feri bulunan sat\u0131rlar say\u0131lmaz.<\/p>\n<p>Bu iki kullan\u0131m aras\u0131ndaki fark\u0131 daha iyi anlamak i\u00e7in bir \u00f6rnek tablo \u00fczerinden inceleyelim:<\/p>\n<pre><code class=\"language-sql\">-- \u00c7al\u0131\u015fanlar Tablosu \u00d6rne\u011fi\nCREATE TABLE Calisanlar (\n    CalisanID INT PRIMARY KEY,\n    Ad NVARCHAR(50),\n    Soyad NVARCHAR(50),\n    DepartmanID INT,\n    TelefonNumarasi NVARCHAR(20)\n);\n\nINSERT INTO Calisanlar (CalisanID, Ad, Soyad, DepartmanID, TelefonNumarasi) VALUES\n(1, 'Ay\u015fe', 'Y\u0131lmaz', 101, '5551234567'),\n(2, 'Mehmet', 'Demir', 102, '5552345678'),\n(3, 'Zeynep', 'Kaya', 101, NULL), -- Telefon Numaras\u0131 NULL\n(4, 'Ali', 'Can', 103, '5553456789'),\n(5, 'Elif', 'Tekin', 102, '5554567890'),\n(6, 'Deniz', 'Arslan', 101, NULL); -- Telefon Numaras\u0131 NULL<\/code><\/pre>\n<p>\u015eimdi bu tablo \u00fczerinde <code>COUNT(*)<\/code> ve <code>COUNT(kolon_ad\u0131)<\/code> kullanal\u0131m:<\/p>\n<pre><code class=\"language-sql\">-- T\u00fcm \u00e7al\u0131\u015fanlar\u0131n say\u0131s\u0131n\u0131 bulma\nSELECT COUNT(*) AS ToplamCalisanSayisi\nFROM Calisanlar;\n-- Sonu\u00e7: 6\n\n-- Telefon numaras\u0131 olan \u00e7al\u0131\u015fanlar\u0131n say\u0131s\u0131n\u0131 bulma\nSELECT COUNT(TelefonNumarasi) AS TelefonluCalisanSayisi\nFROM Calisanlar;\n-- Sonu\u00e7: 4 (Zeynep ve Deniz'in telefon numaralar\u0131 NULL oldu\u011fu i\u00e7in say\u0131lmaz)<\/code><\/pre>\n<p>G\u00f6r\u00fcld\u00fc\u011f\u00fc \u00fczere, <code>COUNT(*)<\/code> tablodaki toplam sat\u0131r say\u0131s\u0131n\u0131 verirken, <code>COUNT(TelefonNumarasi)<\/code> sadece <code>TelefonNumarasi<\/code> s\u00fctununda <code>NULL<\/code> olmayan (yani bir de\u011fere sahip olan) sat\u0131rlar\u0131 saym\u0131\u015ft\u0131r. Bu ayr\u0131m, veri do\u011frulu\u011fu ve analizi a\u00e7\u0131s\u0131ndan olduk\u00e7a \u00f6nemlidir.<\/p>\n<h3>COUNT() ile DISTINCT Anahtar Kelimesi<\/h3>\n<p><code>COUNT()<\/code> fonksiyonunun bir di\u011fer g\u00fc\u00e7l\u00fc \u00f6zelli\u011fi, <code>DISTINCT<\/code> anahtar kelimesi ile birlikte kullan\u0131lmas\u0131d\u0131r. <code>DISTINCT<\/code>, belirtilen s\u00fctundaki yaln\u0131zca benzersiz (tekil) de\u011ferleri saymak i\u00e7in kullan\u0131l\u0131r. Bu, \u00f6zellikle veri k\u00fcmesindeki farkl\u0131 kategori say\u0131s\u0131n\u0131 veya benzersiz \u00f6\u011felerin say\u0131s\u0131n\u0131 \u00f6\u011frenmek istedi\u011fimizde \u00e7ok faydal\u0131d\u0131r.<\/p>\n<p>S\u00f6zdizimi \u015fu \u015fekildedir:<\/p>\n<pre><code class=\"language-sql\">SELECT COUNT(DISTINCT kolon_ad\u0131)\nFROM tablo_ad\u0131;<\/code><\/pre>\n<p>Yukar\u0131daki <code>Calisanlar<\/code> tablomuzu kullanarak bir \u00f6rnek yapal\u0131m:<\/p>\n<pre><code class=\"language-sql\">-- Ka\u00e7 farkl\u0131 departman oldu\u011funu bulma\nSELECT COUNT(DISTINCT DepartmanID) AS FarkliDepartmanSayisi\nFROM Calisanlar;\n-- Sonu\u00e7: 3 (101, 102, 103)<\/code><\/pre>\n<p>Bu sorgu, <code>Calisanlar<\/code> tablosundaki <code>DepartmanID<\/code> s\u00fctunundaki benzersiz de\u011ferleri sayar. E\u011fer <code>DISTINCT<\/code> kullanmasayd\u0131k (<code>COUNT(DepartmanID)<\/code>), <code>NULL<\/code> olmayan t\u00fcm departman ID&#8217;lerini sayacak ve sonu\u00e7 6 olacakt\u0131. <code>DISTINCT<\/code> ile sadece 101, 102 ve 103 de\u011ferleri birer kez say\u0131lm\u0131\u015ft\u0131r.<\/p>\n<p><code>DISTINCT<\/code> kullan\u0131m\u0131, \u00f6rne\u011fin bir e-ticaret sitesinde ka\u00e7 farkl\u0131 \u00fcr\u00fcn\u00fcn sat\u0131ld\u0131\u011f\u0131n\u0131, bir m\u00fc\u015fteri listesinde ka\u00e7 farkl\u0131 \u015fehrin bulundu\u011funu veya bir blogda ka\u00e7 farkl\u0131 yazar\u0131n makale yazd\u0131\u011f\u0131n\u0131 bulmak gibi senaryolarda hayati \u00f6nem ta\u015f\u0131r.<\/p>\n<h3>COUNT() ve WHERE Yan T\u00fcmcesi<\/h3>\n<p><code>WHERE<\/code> yan t\u00fcmcesi, <code>SELECT<\/code> sorgular\u0131nda belirli ko\u015fullar\u0131 sa\u011flayan sat\u0131rlar\u0131 filtrelemek i\u00e7in kullan\u0131l\u0131r. <code>COUNT()<\/code> fonksiyonu ile <code>WHERE<\/code> yan t\u00fcmcesini birle\u015ftirmek, belirli kriterlere uyan kay\u0131tlar\u0131n say\u0131s\u0131n\u0131 elde etmemizi sa\u011flar. Bu, veri k\u00fcmesinin belirli bir alt k\u00fcmesi \u00fczerinde say\u0131m yapmak istedi\u011fimizde \u00e7ok kullan\u0131\u015fl\u0131d\u0131r.<\/p>\n<p>S\u00f6zdizimi:<\/p>\n<pre><code class=\"language-sql\">SELECT COUNT(*)\nFROM tablo_ad\u0131\nWHERE ko\u015ful;<\/code><\/pre>\n<p><code>Calisanlar<\/code> tablomuz \u00fczerinden \u00f6rnekler:<\/p>\n<pre><code class=\"language-sql\">-- Departman ID'si 101 olan \u00e7al\u0131\u015fanlar\u0131n say\u0131s\u0131n\u0131 bulma\nSELECT COUNT(*) AS Departman101CalisanSayisi\nFROM Calisanlar\nWHERE DepartmanID = 101;\n-- Sonu\u00e7: 3 (Ay\u015fe, Zeynep, Deniz)\n\n-- Ad\u0131 'A' ile ba\u015flayan \u00e7al\u0131\u015fanlar\u0131n say\u0131s\u0131n\u0131 bulma\nSELECT COUNT(*) AS AileBaslayanAdSayisi\nFROM Calisanlar\nWHERE Ad LIKE 'A%';\n-- Sonu\u00e7: 2 (Ay\u015fe, Ali)\n\n-- Telefon numaras\u0131 NULL olan \u00e7al\u0131\u015fanlar\u0131n say\u0131s\u0131n\u0131 bulma\nSELECT COUNT(*) AS TelefonuNULLCalisanSayisi\nFROM Calisanlar\nWHERE TelefonNumarasi IS NULL;\n-- Sonu\u00e7: 2 (Zeynep, Deniz)<\/code><\/pre>\n<p><code>WHERE<\/code> yan t\u00fcmcesi, <code>COUNT(kolon_ad\u0131)<\/code> veya <code>COUNT(DISTINCT kolon_ad\u0131)<\/code> ile de birle\u015ftirilebilir:<\/p>\n<pre><code class=\"language-sql\">-- Departman ID'si 101 olan ve telefon numaras\u0131 olan \u00e7al\u0131\u015fanlar\u0131n say\u0131s\u0131n\u0131 bulma\nSELECT COUNT(TelefonNumarasi) AS Departman101TelefonluCalisanSayisi\nFROM Calisanlar\nWHERE DepartmanID = 101;\n-- Sonu\u00e7: 1 (Ay\u015fe)<\/code><\/pre>\n<p>Bu \u00f6rnekte, \u00f6nce <code>WHERE<\/code> ko\u015fuluyla <code>DepartmanID<\/code>&#8216;si 101 olan \u00e7al\u0131\u015fanlar filtrelenir, ard\u0131ndan bu filtrelenmi\u015f grup i\u00e7inde <code>TelefonNumarasi<\/code> s\u00fctununda <code>NULL<\/code> olmayan de\u011ferler say\u0131l\u0131r.<\/p>\n<h3>COUNT() ve GROUP BY Yan T\u00fcmcesi<\/h3>\n<p><code>GROUP BY<\/code> yan t\u00fcmcesi, <code>SELECT<\/code> sorgular\u0131nda sat\u0131rlar\u0131 bir veya daha fazla s\u00fctundaki ortak de\u011ferlere g\u00f6re gruplamak i\u00e7in kullan\u0131l\u0131r. <code>COUNT()<\/code> fonksiyonu ile <code>GROUP BY<\/code> kullan\u0131ld\u0131\u011f\u0131nda, her bir grup i\u00e7in ayr\u0131 ayr\u0131 say\u0131m yapar. Bu, kategorik verilerin analizinde ve her kategori i\u00e7indeki \u00f6\u011fe say\u0131s\u0131n\u0131 belirlemede \u00e7ok g\u00fc\u00e7l\u00fc bir ara\u00e7t\u0131r.<\/p>\n<p>S\u00f6zdizimi:<\/p>\n<pre><code class=\"language-sql\">SELECT kolon_ad\u0131, COUNT(*)\nFROM tablo_ad\u0131\nGROUP BY kolon_ad\u0131;<\/code><\/pre>\n<p><code>Calisanlar<\/code> tablomuz \u00fczerinde departmanlara g\u00f6re \u00e7al\u0131\u015fan say\u0131s\u0131n\u0131 bulal\u0131m:<\/p>\n<pre><code class=\"language-sql\">-- Her departmandaki \u00e7al\u0131\u015fan say\u0131s\u0131n\u0131 bulma\nSELECT DepartmanID, COUNT(*) AS CalisanSayisi\nFROM Calisanlar\nGROUP BY DepartmanID;\n\/*\nSonu\u00e7:\nDepartmanID | CalisanSayisi\n------------|--------------\n101         | 3\n102         | 2\n103         | 1\n*\/<\/code><\/pre>\n<p>Bu sorgu, <code>Calisanlar<\/code> tablosundaki sat\u0131rlar\u0131 <code>DepartmanID<\/code>&#8216;ye g\u00f6re gruplar ve her departman i\u00e7in ayr\u0131 ayr\u0131 \u00e7al\u0131\u015fan say\u0131s\u0131n\u0131 d\u00f6nd\u00fcr\u00fcr.<\/p>\n<p>Birden fazla s\u00fctun kullanarak da gruplama yapabiliriz. \u00d6rne\u011fin, her departmandaki telefon numaras\u0131 olan ve olmayan \u00e7al\u0131\u015fan say\u0131lar\u0131n\u0131 g\u00f6rmek isteyebiliriz:<\/p>\n<pre><code class=\"language-sql\">-- Her departmanda telefon numaras\u0131 olan ve olmayan \u00e7al\u0131\u015fan say\u0131lar\u0131\nSELECT DepartmanID,\n       CASE WHEN TelefonNumarasi IS NULL THEN 'Telefon Yok' ELSE 'Telefon Var' END AS TelefonDurumu,\n       COUNT(*) AS CalisanSayisi\nFROM Calisanlar\nGROUP BY DepartmanID, CASE WHEN TelefonNumarasi IS NULL THEN 'Telefon Yok' ELSE 'Telefon Var' END\nORDER BY DepartmanID, TelefonDurumu;\n\/*\nSonu\u00e7:\nDepartmanID | TelefonDurumu | CalisanSayisi\n------------|---------------|--------------\n101         | Telefon Var   | 1\n101         | Telefon Yok   | 2\n102         | Telefon Var   | 2\n103         | Telefon Var   | 1\n*\/<\/code><\/pre>\n<p>Bu \u00f6rnekte, <code>CASE<\/code> ifadesiyle olu\u015fturulan sanal bir s\u00fctun \u00fczerinden de gruplama yaparak daha detayl\u0131 analiz yap\u0131lm\u0131\u015ft\u0131r.<\/p>\n<h3>COUNT() ve HAVING Yan T\u00fcmcesi<\/h3>\n<p><code>HAVING<\/code> yan t\u00fcmcesi, <code>GROUP BY<\/code> ile olu\u015fturulan gruplar\u0131 filtrelemek i\u00e7in kullan\u0131l\u0131r. <code>WHERE<\/code> yan t\u00fcmcesi bireysel sat\u0131rlar\u0131 filtrelerken, <code>HAVING<\/code> yan t\u00fcmcesi toplama fonksiyonlar\u0131n\u0131n sonu\u00e7lar\u0131na (yani gruplara) dayal\u0131 olarak filtreleme yapar. <code>COUNT()<\/code> fonksiyonu ile <code>HAVING<\/code> kullanmak, belirli bir say\u0131da \u00f6\u011feye sahip gruplar\u0131 se\u00e7memizi sa\u011flar.<\/p>\n<p>S\u00f6zdizimi:<\/p>\n<pre><code class=\"language-sql\">SELECT kolon_ad\u0131, COUNT(*)\nFROM tablo_ad\u0131\nGROUP BY kolon_ad\u0131\nHAVING COUNT(*) ko\u015ful;<\/code><\/pre>\n<p>\u00d6rnek olarak, \u00e7al\u0131\u015fan say\u0131s\u0131 2&#8217;den fazla olan departmanlar\u0131 bulal\u0131m:<\/p>\n<pre><code class=\"language-sql\">-- \u00c7al\u0131\u015fan say\u0131s\u0131 2'den fazla olan departmanlar\u0131 bulma\nSELECT DepartmanID, COUNT(*) AS CalisanSayisi\nFROM Calisanlar\nGROUP BY DepartmanID\nHAVING COUNT(*) > 2;\n\/*\nSonu\u00e7:\nDepartmanID | CalisanSayisi\n------------|--------------\n101         | 3\n*\/<\/code><\/pre>\n<p>Bu sorgu \u00f6nce departmanlara g\u00f6re \u00e7al\u0131\u015fan say\u0131lar\u0131n\u0131 hesaplar (<code>GROUP BY<\/code> ve <code>COUNT(<em>)<\/code>), ard\u0131ndan <code>HAVING COUNT(<\/em>) > 2<\/code> ko\u015fulu ile sadece \u00e7al\u0131\u015fan say\u0131s\u0131 2&#8217;den b\u00fcy\u00fck olan departmanlar\u0131 filtreler.<\/p>\n<p><code>HAVING<\/code> yan t\u00fcmcesi, <code>COUNT(DISTINCT)<\/code> ile de kullan\u0131labilir. \u00d6rne\u011fin, benzersiz \u00e7al\u0131\u015fan say\u0131s\u0131 belirli bir e\u015fi\u011fin \u00fczerinde olan departmanlar\u0131 bulmak i\u00e7in:<\/p>\n<pre><code class=\"language-sql\">-- Benzersiz telefon numaras\u0131 olan \u00e7al\u0131\u015fan say\u0131s\u0131 1'den fazla olan departmanlar\u0131 bulma\nSELECT DepartmanID, COUNT(DISTINCT TelefonNumarasi) AS BenzersizTelefonSayisi\nFROM Calisanlar\nGROUP BY DepartmanID\nHAVING COUNT(DISTINCT TelefonNumarasi) > 1;\n\/*\nSonu\u00e7:\nDepartmanID | BenzersizTelefonSayisi\n------------|-----------------------\n102         | 2\n*\/<\/code><\/pre>\n<p>Departman 101&#8217;de 3 \u00e7al\u0131\u015fan olmas\u0131na ra\u011fmen, sadece 1 tanesinin (Ay\u015fe) telefon numaras\u0131 oldu\u011fu i\u00e7in <code>COUNT(DISTINCT TelefonNumarasi)<\/code> 1 d\u00f6ner ve bu ko\u015fulu sa\u011flamaz. Departman 102&#8217;de ise 2 \u00e7al\u0131\u015fan olup ikisinin de telefon numaras\u0131 oldu\u011fu i\u00e7in <code>COUNT(DISTINCT TelefonNumarasi)<\/code> 2 d\u00f6ner ve ko\u015fulu sa\u011flar.<\/p>\n<h3>COUNT() ve ORDER BY Yan T\u00fcmcesi<\/h3>\n<p><code>ORDER BY<\/code> yan t\u00fcmcesi, <code>SELECT<\/code> sorgular\u0131n\u0131n sonu\u00e7lar\u0131n\u0131 bir veya daha fazla s\u00fctuna g\u00f6re s\u0131ralamak i\u00e7in kullan\u0131l\u0131r. <code>COUNT()<\/code> fonksiyonu ile birlikte kullan\u0131ld\u0131\u011f\u0131nda, gruplanm\u0131\u015f say\u0131m sonu\u00e7lar\u0131n\u0131 belirli bir d\u00fczene g\u00f6re s\u0131ralamam\u0131z\u0131 sa\u011flar. Bu, en \u00e7ok veya en az say\u0131da \u00f6\u011feye sahip gruplar\u0131 h\u0131zl\u0131ca belirlemek i\u00e7in kullan\u0131\u015fl\u0131d\u0131r.<\/p>\n<p>S\u00f6zdizimi:<\/p>\n<pre><code class=\"language-sql\">SELECT kolon_ad\u0131, COUNT(*)\nFROM tablo_ad\u0131\nGROUP BY kolon_ad\u0131\nORDER BY COUNT(*) [ASC|DESC];<\/code><\/pre>\n<p>\u00d6rnek olarak, departmanlar\u0131 \u00e7al\u0131\u015fan say\u0131s\u0131na g\u00f6re azalan s\u0131rada s\u0131ralayal\u0131m:<\/p>\n<pre><code class=\"language-sql\">-- Departmanlar\u0131 \u00e7al\u0131\u015fan say\u0131s\u0131na g\u00f6re azalan s\u0131rada s\u0131ralama\nSELECT DepartmanID, COUNT(*) AS CalisanSayisi\nFROM Calisanlar\nGROUP BY DepartmanID\nORDER BY CalisanSayisi DESC;\n\/*\nSonu\u00e7:\nDepartmanID | CalisanSayisi\n------------|--------------\n101         | 3\n102         | 2\n103         | 1\n*\/<\/code><\/pre>\n<p>Bu sorgu, her departman\u0131n \u00e7al\u0131\u015fan say\u0131s\u0131n\u0131 hesaplar ve sonu\u00e7lar\u0131 en \u00e7ok \u00e7al\u0131\u015fana sahip departmandan en aza do\u011fru s\u0131ralar.<\/p>\n<h3>COUNT() ile \u0130li\u015fkili Di\u011fer Fonksiyonlar ve Senaryolar<\/h3>\n<p><code>COUNT()<\/code> fonksiyonu, tek ba\u015f\u0131na g\u00fc\u00e7l\u00fc oldu\u011fu kadar, di\u011fer SQL yap\u0131lar\u0131yla birle\u015fti\u011finde daha karma\u015f\u0131k ve anlaml\u0131 analizler yapmam\u0131z\u0131 sa\u011flar.<\/p>\n<h4>COUNT() ve CASE \u0130fadeleri<\/h4>\n<p><code>CASE<\/code> ifadeleri, SQL sorgular\u0131nda ko\u015fullu mant\u0131k uygulamam\u0131z\u0131 sa\u011flar. <code>COUNT()<\/code> ile <code>CASE<\/code> ifadelerini birle\u015ftirmek, belirli ko\u015fullara uyan \u00f6\u011feleri saymak i\u00e7in \u00e7ok esnek bir yol sunar. \u00d6rne\u011fin, tek bir sorguda farkl\u0131 kategorilerdeki \u00f6\u011felerin say\u0131s\u0131n\u0131 bulabiliriz.<\/p>\n<pre><code class=\"language-sql\">-- Cinsiyet s\u00fctunu oldu\u011funu varsayal\u0131m ve erkek\/kad\u0131n \u00e7al\u0131\u015fan say\u0131lar\u0131n\u0131 bulal\u0131m.\n-- Tabloya Cinsiyet s\u00fctunu ekleyelim:\nALTER TABLE Calisanlar ADD Cinsiyet NVARCHAR(10);\nUPDATE Calisanlar SET Cinsiyet = 'Kad\u0131n' WHERE CalisanID IN (1, 3, 5);\nUPDATE Calisanlar SET Cinsiyet = 'Erkek' WHERE CalisanID IN (2, 4, 6);\n\nSELECT\n    COUNT(CASE WHEN Cinsiyet = 'Erkek' THEN 1 END) AS ErkekCalisanSayisi,\n    COUNT(CASE WHEN Cinsiyet = 'Kad\u0131n' THEN 1 END) AS KadinCalisanSayisi,\n    COUNT(*) AS ToplamCalisanSayisi\nFROM Calisanlar;\n\/*\nSonu\u00e7:\nErkekCalisanSayisi | KadinCalisanSayisi | ToplamCalisanSayisi\n-------------------|--------------------|--------------------\n3                  | 3                  | 6\n*\/<\/code><\/pre>\n<p>Burada <code>COUNT(CASE WHEN ... THEN 1 END)<\/code> yap\u0131s\u0131 \u00f6nemlidir. <code>CASE<\/code> ifadesi ko\u015fulu sa\u011flad\u0131\u011f\u0131nda <code>1<\/code> d\u00f6nd\u00fcr\u00fcr, sa\u011flamad\u0131\u011f\u0131nda ise <code>NULL<\/code> d\u00f6nd\u00fcr\u00fcr. <code>COUNT()<\/code> fonksiyonu <code>NULL<\/code> de\u011ferleri saymad\u0131\u011f\u0131 i\u00e7in, yaln\u0131zca ko\u015fulu sa\u011flayan sat\u0131rlar say\u0131lm\u0131\u015f olur.<\/p>\n<h4>COUNT() ve JOIN \u0130\u015flemleri<\/h4>\n<p>Birden fazla tabloyu birle\u015ftirmek (JOIN) ve bu birle\u015ftirilmi\u015f veriler \u00fczerinde <code>COUNT()<\/code> kullanmak, ili\u015fkisel veritabanlar\u0131n\u0131n g\u00fcc\u00fcn\u00fc ortaya \u00e7\u0131kar\u0131r. \u00d6rne\u011fin, her m\u00fc\u015fterinin ka\u00e7 sipari\u015fi oldu\u011funu saymak gibi senaryolarda <code>JOIN<\/code> ve <code>COUNT()<\/code> birlikte kullan\u0131l\u0131r.<\/p>\n<p>Yeni bir <code>Siparisler<\/code> tablosu olu\u015ftural\u0131m:<\/p>\n<pre><code class=\"language-sql\">CREATE TABLE Siparisler (\n    SiparisID INT PRIMARY KEY,\n    CalisanID INT,\n    SiparisTarihi DATE,\n    Tutar DECIMAL(10, 2),\n    FOREIGN KEY (CalisanID) REFERENCES Calisanlar(CalisanID)\n);\n\nINSERT INTO Siparisler (SiparisID, CalisanID, SiparisTarihi, Tutar) VALUES\n(1001, 1, '2023-01-15', 150.00),\n(1002, 2, '2023-01-16', 200.50),\n(1003, 1, '2023-01-17', 75.25),\n(1004, 4, '2023-01-18', 300.00),\n(1005, 1, '2023-01-19', 120.00),\n(1006, 2, '2023-01-20', 50.00),\n(1007, 3, '2023-01-21', 100.00); -- Zeynep'in bir sipari\u015fi var<\/code><\/pre>\n<p>\u015eimdi her \u00e7al\u0131\u015fan\u0131n ka\u00e7 sipari\u015fi oldu\u011funu bulal\u0131m:<\/p>\n<pre><code class=\"language-sql\">SELECT\n    C.Ad,\n    C.Soyad,\n    COUNT(S.SiparisID) AS ToplamSiparisSayisi\nFROM Calisanlar AS C\nLEFT JOIN Siparisler AS S ON C.CalisanID = S.CalisanID\nGROUP BY C.CalisanID, C.Ad, C.Soyad\nORDER BY ToplamSiparisSayisi DESC;\n\/*\nSonu\u00e7:\nAd    | Soyad  | ToplamSiparisSayisi\n------|--------|--------------------\nAy\u015fe  | Y\u0131lmaz | 3\nMehmet| Demir  | 2\nZeynep| Kaya   | 1\nAli   | Can    | 1\nElif  | Tekin  | 0\nDeniz | Arslan | 0\n*\/<\/code><\/pre>\n<p><code>LEFT JOIN<\/code> kullanmam\u0131z\u0131n nedeni, sipari\u015fi olmayan \u00e7al\u0131\u015fanlar\u0131n da sonu\u00e7 k\u00fcmesinde g\u00f6r\u00fcnmesini sa\u011flamakt\u0131r. <code>COUNT(S.SiparisID)<\/code> kullan\u0131lmas\u0131, <code>NULL<\/code> olan (yani sipari\u015fi olmayan) \u00e7al\u0131\u015fanlar i\u00e7in 0 de\u011ferini d\u00f6nd\u00fcrmesini sa\u011flar, \u00e7\u00fcnk\u00fc <code>COUNT(kolon_ad\u0131)<\/code> <code>NULL<\/code> de\u011ferleri saymaz. E\u011fer <code>COUNT(*)<\/code> kullansayd\u0131k, <code>LEFT JOIN<\/code> nedeniyle sipari\u015fi olmayan \u00e7al\u0131\u015fanlar i\u00e7in de 1 de\u011feri d\u00f6nebilirdi (\u00e7\u00fcnk\u00fc <code>Calisanlar<\/code> tablosundan bir sat\u0131r yine de e\u015fle\u015fir), bu y\u00fczden <code>COUNT(S.SiparisID)<\/code> veya <code>COUNT(DISTINCT S.SiparisID)<\/code> gibi belirli bir s\u00fctunu saymak daha do\u011fru bir yakla\u015f\u0131md\u0131r.<\/p>\n<h4>COUNT() ve Alt Sorgular (Subqueries)<\/h4>\n<p><code>COUNT()<\/code> fonksiyonu, daha karma\u015f\u0131k sorgular olu\u015fturmak i\u00e7in alt sorgular i\u00e7inde de kullan\u0131labilir. Alt sorgular, bir ana sorgunun i\u00e7inde \u00e7al\u0131\u015fan sorgulard\u0131r ve genellikle ana sorgunun filtreleme veya hesaplama ko\u015fullar\u0131nda kullan\u0131l\u0131r.<\/p>\n<p>\u00d6rne\u011fin, ortalama sipari\u015f say\u0131s\u0131ndan daha fazla sipari\u015fi olan \u00e7al\u0131\u015fanlar\u0131 bulal\u0131m:<\/p>\n<pre><code class=\"language-sql\">SELECT Ad, Soyad, ToplamSiparis\nFROM (\n    SELECT\n        C.Ad,\n        C.Soyad,\n        COUNT(S.SiparisID) AS ToplamSiparis\n    FROM Calisanlar AS C\n    LEFT JOIN Siparisler AS S ON C.CalisanID = S.CalisanID\n    GROUP BY C.CalisanID, C.Ad, C.Soyad\n) AS CalisanSiparisleri\nWHERE ToplamSiparis > (SELECT AVG(ToplamSiparis) FROM (\n    SELECT COUNT(SiparisID) AS ToplamSiparis\n    FROM Siparisler\n    GROUP BY CalisanID\n) AS AvgSiparisler);\n\/*\nSonu\u00e7 (Ortalama sipari\u015f say\u0131s\u0131 1.4't\u00fcr):\nAd   | Soyad  | ToplamSiparis\n-----|--------|--------------\nAy\u015fe | Y\u0131lmaz | 3\n*\/<\/code><\/pre>\n<p>Bu \u00f6rnek biraz karma\u015f\u0131k olsa da, <code>COUNT()<\/code>&#8216;un alt sorgularla nas\u0131l kullan\u0131labilece\u011fini g\u00f6stermektedir. \u0130lk alt sorgu her \u00e7al\u0131\u015fan\u0131n sipari\u015f say\u0131s\u0131n\u0131 bulur. \u0130kinci alt sorgu ise bu sipari\u015f say\u0131lar\u0131n\u0131n ortalamas\u0131n\u0131 hesaplar. Ana sorgu, bu ortalamadan daha fazla sipari\u015fi olan \u00e7al\u0131\u015fanlar\u0131 filtreler.<\/p>\n<h4>COUNT() ve Pencere Fonksiyonlar\u0131 (Window Functions)<\/h4>\n<p>Pencere fonksiyonlar\u0131, SQL&#8217;de ileri d\u00fczey bir konudur ve bir grup sat\u0131r \u00fczerinde hesaplamalar yaparken, her sat\u0131r\u0131n kendi grubundaki di\u011fer sat\u0131rlarla ili\u015fkisini korumas\u0131n\u0131 sa\u011flar. <code>COUNT()<\/code> bir pencere fonksiyonu olarak da kullan\u0131labilir (<code>COUNT() OVER (...)<\/code>). Bu, hareketli ortalamalar, k\u00fcm\u00fclatif toplamlar veya belirli bir pencere i\u00e7indeki \u00f6\u011fe say\u0131lar\u0131 gibi senaryolarda \u00e7ok g\u00fc\u00e7l\u00fcd\u00fcr.<\/p>\n<pre><code class=\"language-sql\">-- Her \u00e7al\u0131\u015fan\u0131n ve \u00e7al\u0131\u015ft\u0131\u011f\u0131 departmandaki toplam \u00e7al\u0131\u015fan say\u0131s\u0131n\u0131 g\u00f6sterelim\nSELECT\n    CalisanID,\n    Ad,\n    DepartmanID,\n    COUNT(*) OVER (PARTITION BY DepartmanID) AS DepartmandakiCalisanSayisi\nFROM Calisanlar\nORDER BY DepartmanID, CalisanID;\n\/*\nSonu\u00e7:\nCalisanID | Ad    | DepartmanID | DepartmandakiCalisanSayisi\n----------|-------|-------------|--------------------------\n1         | Ay\u015fe  | 101         | 3\n3         | Zeynep| 101         | 3\n6         | Deniz | 101         | 3\n2         | Mehmet| 102         | 2\n5         | Elif  | 102         | 2\n4         | Ali   | 103         | 1\n*\/<\/code><\/pre>\n<p><code>COUNT(*) OVER (PARTITION BY DepartmanID)<\/code> ifadesi, her bir sat\u0131r i\u00e7in, o sat\u0131r\u0131n ait oldu\u011fu <code>DepartmanID<\/code> grubundaki toplam \u00e7al\u0131\u015fan say\u0131s\u0131n\u0131 d\u00f6nd\u00fcr\u00fcr. Bu, <code>GROUP BY<\/code> kullanmadan, her bir bireysel sat\u0131r\u0131n yan\u0131nda grup \u00f6zetini g\u00f6rmemizi sa\u011flar.<\/p>\n<h3>Performans \u0130pu\u00e7lar\u0131 ve En \u0130yi Uygulamalar<\/h3>\n<p><code>COUNT()<\/code> fonksiyonu genellikle h\u0131zl\u0131 \u00e7al\u0131\u015fsa da, \u00e7ok b\u00fcy\u00fck veri k\u00fcmeleriyle \u00e7al\u0131\u015f\u0131rken performans sorunlar\u0131 ortaya \u00e7\u0131kabilir. \u0130\u015fte baz\u0131 ipu\u00e7lar\u0131 ve en iyi uygulamalar:<\/p>\n<p>*   <strong>\u0130ndeksleme:<\/strong> <code>WHERE<\/code>, <code>GROUP BY<\/code> ve <code>ORDER BY<\/code> yan t\u00fcmcelerinde kullan\u0131lan s\u00fctunlara indeks eklemek, sorgu performans\u0131n\u0131 \u00f6nemli \u00f6l\u00e7\u00fcde art\u0131rabilir. \u00d6zellikle <code>COUNT(DISTINCT kolon_ad\u0131)<\/code> kullan\u0131l\u0131yorsa, o s\u00fctunda indeks olmas\u0131 benzersiz de\u011ferleri bulma i\u015flemini h\u0131zland\u0131racakt\u0131r.<br \/>\n<em>   <strong><code>COUNT(<\/em>)<\/code> vs <code>COUNT(1)<\/code> vs <code>COUNT(kolon_ad\u0131)<\/code>:<\/strong> Modern veritaban\u0131 sistemlerinde <code>COUNT(<em>)<\/code> ve <code>COUNT(1)<\/code> genellikle ayn\u0131 performans\u0131 sunar, \u00e7\u00fcnk\u00fc her ikisi de sadece sat\u0131r say\u0131s\u0131n\u0131 bulmak i\u00e7in tasarlanm\u0131\u015ft\u0131r ve bir s\u00fctunun de\u011ferlerini okumaya gerek duymazlar. Ancak, <code>COUNT(kolon_ad\u0131)<\/code> kullan\u0131ld\u0131\u011f\u0131nda, veritaban\u0131 belirtilen s\u00fctundaki <code>NULL<\/code> olmayan de\u011ferleri kontrol etmek zorunda kal\u0131r, bu da hafif bir performans fark\u0131na neden olabilir. Genellikle, t\u00fcm sat\u0131rlar\u0131 saymak i\u00e7in <code>COUNT(<\/em>)<\/code> kullanmak en yayg\u0131n ve anla\u015f\u0131l\u0131r yoldur.<br \/>\n<em>   <strong>Gereksiz <code>COUNT(DISTINCT)<\/code> kullan\u0131m\u0131ndan ka\u00e7\u0131n\u0131n:<\/strong> <code>COUNT(DISTINCT)<\/code> hesaplama a\u00e7\u0131s\u0131ndan <code>COUNT(<\/em>)<\/code>&#8216;dan daha maliyetlidir, \u00e7\u00fcnk\u00fc veritaban\u0131n\u0131n benzersiz de\u011ferleri belirlemek i\u00e7in ek bir i\u015flem yapmas\u0131 gerekir. Sadece ger\u00e7ekten benzersiz de\u011ferleri sayman\u0131z gerekti\u011finde kullan\u0131n.<br \/>\n<em>   <strong>B\u00fcy\u00fck tablolarda <code>COUNT(<\/em>)<\/code>&#8216;dan ka\u00e7\u0131n\u0131n (e\u011fer tam say\u0131 gerekli de\u011filse):<\/strong> Milyarlarca sat\u0131ra sahip tablolarda <code>SELECT COUNT(*) FROM BuyukTablo;<\/code> sorgusu \u00e7ok uzun s\u00fcrebilir ve veritaban\u0131 sunucusunu yorabilir. E\u011fer tam say\u0131ya ihtiyac\u0131n\u0131z yoksa ve yakla\u015f\u0131k bir say\u0131 yeterliyse, baz\u0131 veritaban\u0131 sistemlerinin sa\u011flad\u0131\u011f\u0131 meta verilerden faydalanabilirsiniz (\u00f6rne\u011fin PostgreSQL&#8217;de <code>pg_class<\/code> tablosundaki <code>reltuples<\/code> veya SQL Server&#8217;da <code>sys.partitions<\/code> gibi sistem tablolar\u0131ndan yakla\u015f\u0131k sat\u0131r say\u0131s\u0131 okunabilir). Ancak bu yakla\u015f\u0131mlar genellikle anl\u0131k, tam do\u011fru bir say\u0131 sa\u011flamaz.<br \/>\n*   <strong>Filtrelemeyi \u00f6nce yap\u0131n:<\/strong> <code>COUNT()<\/code>&#8216;u uygulamadan \u00f6nce <code>WHERE<\/code> yan t\u00fcmcesi ile veri k\u00fcmesini m\u00fcmk\u00fcn oldu\u011funca k\u00fc\u00e7\u00fcltmek, toplama fonksiyonunun daha az veri \u00fczerinde \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flayarak performans\u0131 art\u0131r\u0131r.<\/p>\n<h3>S\u0131k Yap\u0131lan Hatalar<\/h3>\n<p><code>COUNT()<\/code> fonksiyonunu kullan\u0131rken yeni ba\u015flayanlar veya deneyimsiz kullan\u0131c\u0131lar taraf\u0131ndan yap\u0131lan baz\u0131 yayg\u0131n hatalar \u015funlard\u0131r:<\/p>\n<p><em>   <strong><code>COUNT(<\/em>)<\/code> ve <code>COUNT(kolon_ad\u0131)<\/code> aras\u0131ndaki fark\u0131 kar\u0131\u015ft\u0131rmak:<\/strong> En yayg\u0131n hatalardan biridir. <code>COUNT(*)<\/code> t\u00fcm sat\u0131rlar\u0131 sayarken, <code>COUNT(kolon_ad\u0131)<\/code> sadece <code>NULL<\/code> olmayan de\u011ferleri sayar. Bu fark, \u00f6zellikle <code>NULL<\/code> de\u011ferlerin bulundu\u011fu s\u00fctunlarda beklenmeyen sonu\u00e7lara yol a\u00e7abilir.<br \/>\n*   <strong><code>WHERE<\/code> ve <code>HAVING<\/code> yan t\u00fcmcelerini yanl\u0131\u015f kullanmak:<\/strong> <code>WHERE<\/code> bireysel sat\u0131rlar\u0131 filtrelerken, <code>HAVING<\/code> <code>GROUP BY<\/code> ile olu\u015fturulan gruplar\u0131 filtreler. Bir toplama fonksiyonunun sonucuna g\u00f6re filtreleme yapmak istiyorsan\u0131z <code>HAVING<\/code> kullanmal\u0131s\u0131n\u0131z.<br \/>\n*   <strong><code>GROUP BY<\/code> kullanmadan <code>COUNT()<\/code> ile birlikte se\u00e7ilen s\u00fctunlar:<\/strong> <code>SELECT<\/code> ifadesinde <code>COUNT()<\/code> gibi bir toplama fonksiyonu kulland\u0131\u011f\u0131n\u0131zda ve ayn\u0131 zamanda toplama fonksiyonu i\u00e7inde yer almayan ba\u015fka s\u00fctunlar da se\u00e7ti\u011finizde, bu di\u011fer s\u00fctunlar\u0131n <code>GROUP BY<\/code> yan t\u00fcmcesinde yer almas\u0131 gerekir. Aksi takdirde, veritaban\u0131 hata verecektir (\u00f6rne\u011fin, &#8220;kolon &#8230; toplama fonksiyonunda veya GROUP BY yan t\u00fcmcesinde yer almal\u0131d\u0131r&#8221;).<br \/>\n*   <strong><code>JOIN<\/code> i\u015flemlerinde yanl\u0131\u015f <code>COUNT()<\/code> kullan\u0131m\u0131:<\/strong> <code>JOIN<\/code> i\u015flemi s\u0131ras\u0131nda sat\u0131rlar\u0131n \u00e7o\u011falt\u0131lmas\u0131 (duplication) riski vard\u0131r. \u00d6rne\u011fin, bir m\u00fc\u015fteri birden fazla adrese sahipse ve m\u00fc\u015fteri-adres tablosunu birle\u015ftirip <code>COUNT(MusteriID)<\/code> yaparsan\u0131z, her adres i\u00e7in m\u00fc\u015fteri say\u0131labilir ve yanl\u0131\u015f bir sonu\u00e7 elde edersiniz. Bu gibi durumlarda <code>COUNT(DISTINCT MusteriID)<\/code> kullanmak daha do\u011fru olacakt\u0131r.<\/p>\n<h3>Sonu\u00e7<\/h3>\n<p>SQL <code>SELECT<\/code> ifadesi ve <code>COUNT()<\/code> fonksiyonu, veritaban\u0131 sorgulaman\u0131n temel ve en g\u00fc\u00e7l\u00fc ara\u00e7lar\u0131ndan biridir. Veri k\u00fcmesinin b\u00fcy\u00fckl\u00fc\u011f\u00fcn\u00fc anlamaktan, belirli ko\u015fullar\u0131 sa\u011flayan \u00f6\u011feleri saymaya, gruplar halinde analiz yapmaya kadar \u00e7ok \u00e7e\u015fitli senaryolarda kullan\u0131l\u0131r. <code>WHERE<\/code>, <code>GROUP BY<\/code>, <code>HAVING<\/code>, <code>ORDER BY<\/code> gibi di\u011fer SQL yan t\u00fcmceleriyle birle\u015fti\u011finde, <code>COUNT()<\/code> fonksiyonunun analitik g\u00fcc\u00fc katlanarak artar.<\/p>\n<p><code>DISTINCT<\/code> anahtar kelimesi ile benzersiz de\u011ferleri sayma yetene\u011fi, <code>CASE<\/code> ifadeleri ile ko\u015fullu say\u0131m yapabilme esnekli\u011fi, <code>JOIN<\/code> ve alt sorgularla karma\u015f\u0131k ili\u015fkileri analiz edebilme ve pencere fonksiyonlar\u0131yla daha geli\u015fmi\u015f analizler yapabilme imkanlar\u0131, <code>COUNT()<\/code>&#8216;u her SQL kullan\u0131c\u0131s\u0131n\u0131n repertuar\u0131nda olmas\u0131 gereken vazge\u00e7ilmez bir ara\u00e7 haline getirir.<\/p>\n<p>Bu makalede ele al\u0131nan kavramlar\u0131 ve \u00f6rnekleri pratik yaparak peki\u015ftirmek, <code>COUNT()<\/code> fonksiyonunu etkin bir \u015fekilde kullanma becerilerinizi geli\u015ftirecektir. Do\u011fru indeksleme ve sorgu optimizasyonu tekniklerini kullanarak, b\u00fcy\u00fck veri k\u00fcmelerinde bile y\u00fcksek performansl\u0131 say\u0131m i\u015flemleri ger\u00e7ekle\u015ftirebilirsiniz. Unutmay\u0131n, veri analizi ve raporlamada do\u011fru say\u0131m, do\u011fru kararlar alman\u0131n ilk ad\u0131m\u0131d\u0131r.<\/body><\/p>\n","protected":false},"excerpt":{"rendered":"SQL SELECT \u0130fadesi ve COUNT() Fonksiyonu: Veri Say\u0131m\u0131 ve Analizinde Derinlemesine Bir Bak\u0131\u015f Veritaban\u0131 y\u00f6netim sistemlerinin (DBMS) temel ta\u015f\u0131 olan SQL (Structured Query Language), veriyi sorgulamak, manip\u00fcle etmek ve y\u00f6netmek i\u00e7in kullan\u0131lan g\u00fc\u00e7l\u00fc bir dildir.","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1505],"tags":[],"class_list":{"0":"post-40666","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-sql-2","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>SQL SELECT \u0130fadesi ve COUNT() Fonksiyonu: Veri Say\u0131m\u0131 ve Analizinde Derinlemesine Bir Bak\u0131\u015f - Kodlar\u0131n Gizemli D\u00fcnyas\u0131<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/sql-select-ifadesi-ve-count-fonksiyonu-veri-sayimi-ve-analizinde-derinlemesine-bir-bakis\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"SQL SELECT \u0130fadesi ve COUNT() Fonksiyonu: Veri Say\u0131m\u0131 ve Analizinde Derinlemesine Bir Bak\u0131\u015f\" \/>\n<meta property=\"og:description\" content=\"SQL SELECT \u0130fadesi ve COUNT() Fonksiyonu: Veri Say\u0131m\u0131 ve Analizinde Derinlemesine Bir Bak\u0131\u015f Veritaban\u0131 y\u00f6netim sistemlerinin (DBMS) temel ta\u015f\u0131 olan SQL (Structured Query Language), veriyi sorgulamak, manip\u00fcle etmek ve y\u00f6netmek i\u00e7in kullan\u0131lan g\u00fc\u00e7l\u00fc bir dildir.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/sql-select-ifadesi-ve-count-fonksiyonu-veri-sayimi-ve-analizinde-derinlemesine-bir-bakis\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2026-02-28T08:40:42+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"17 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/sql-select-ifadesi-ve-count-fonksiyonu-veri-sayimi-ve-analizinde-derinlemesine-bir-bakis\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/sql-select-ifadesi-ve-count-fonksiyonu-veri-sayimi-ve-analizinde-derinlemesine-bir-bakis\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"SQL SELECT \u0130fadesi ve COUNT() Fonksiyonu: Veri Say\u0131m\u0131 ve Analizinde Derinlemesine Bir Bak\u0131\u015f\",\"datePublished\":\"2026-02-28T08:40:42+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/sql-select-ifadesi-ve-count-fonksiyonu-veri-sayimi-ve-analizinde-derinlemesine-bir-bakis\/\"},\"wordCount\":2322,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"SQL\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/sql-select-ifadesi-ve-count-fonksiyonu-veri-sayimi-ve-analizinde-derinlemesine-bir-bakis\/#respond\"]}],\"copyrightYear\":\"2026\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/sql-select-ifadesi-ve-count-fonksiyonu-veri-sayimi-ve-analizinde-derinlemesine-bir-bakis\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/sql-select-ifadesi-ve-count-fonksiyonu-veri-sayimi-ve-analizinde-derinlemesine-bir-bakis\/\",\"name\":\"SQL SELECT \u0130fadesi ve COUNT() Fonksiyonu: Veri Say\u0131m\u0131 ve Analizinde Derinlemesine Bir Bak\u0131\u015f - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2026-02-28T08:40:42+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/sql-select-ifadesi-ve-count-fonksiyonu-veri-sayimi-ve-analizinde-derinlemesine-bir-bakis\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/sql-select-ifadesi-ve-count-fonksiyonu-veri-sayimi-ve-analizinde-derinlemesine-bir-bakis\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/sql-select-ifadesi-ve-count-fonksiyonu-veri-sayimi-ve-analizinde-derinlemesine-bir-bakis\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"SQL SELECT \u0130fadesi ve COUNT() Fonksiyonu: Veri Say\u0131m\u0131 ve Analizinde Derinlemesine Bir Bak\u0131\u015f\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"SQL SELECT \u0130fadesi ve COUNT() Fonksiyonu: Veri Say\u0131m\u0131 ve Analizinde Derinlemesine Bir Bak\u0131\u015f - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/sql-select-ifadesi-ve-count-fonksiyonu-veri-sayimi-ve-analizinde-derinlemesine-bir-bakis\/","og_locale":"tr_TR","og_type":"article","og_title":"SQL SELECT \u0130fadesi ve COUNT() Fonksiyonu: Veri Say\u0131m\u0131 ve Analizinde Derinlemesine Bir Bak\u0131\u015f","og_description":"SQL SELECT \u0130fadesi ve COUNT() Fonksiyonu: Veri Say\u0131m\u0131 ve Analizinde Derinlemesine Bir Bak\u0131\u015f Veritaban\u0131 y\u00f6netim sistemlerinin (DBMS) temel ta\u015f\u0131 olan SQL (Structured Query Language), veriyi sorgulamak, manip\u00fcle etmek ve y\u00f6netmek i\u00e7in kullan\u0131lan g\u00fc\u00e7l\u00fc bir dildir.","og_url":"https:\/\/fatihsoysal.com\/blog\/sql-select-ifadesi-ve-count-fonksiyonu-veri-sayimi-ve-analizinde-derinlemesine-bir-bakis\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2026-02-28T08:40:42+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"17 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/sql-select-ifadesi-ve-count-fonksiyonu-veri-sayimi-ve-analizinde-derinlemesine-bir-bakis\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/sql-select-ifadesi-ve-count-fonksiyonu-veri-sayimi-ve-analizinde-derinlemesine-bir-bakis\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"SQL SELECT \u0130fadesi ve COUNT() Fonksiyonu: Veri Say\u0131m\u0131 ve Analizinde Derinlemesine Bir Bak\u0131\u015f","datePublished":"2026-02-28T08:40:42+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/sql-select-ifadesi-ve-count-fonksiyonu-veri-sayimi-ve-analizinde-derinlemesine-bir-bakis\/"},"wordCount":2322,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["SQL"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/sql-select-ifadesi-ve-count-fonksiyonu-veri-sayimi-ve-analizinde-derinlemesine-bir-bakis\/#respond"]}],"copyrightYear":"2026","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/sql-select-ifadesi-ve-count-fonksiyonu-veri-sayimi-ve-analizinde-derinlemesine-bir-bakis\/","url":"https:\/\/fatihsoysal.com\/blog\/sql-select-ifadesi-ve-count-fonksiyonu-veri-sayimi-ve-analizinde-derinlemesine-bir-bakis\/","name":"SQL SELECT \u0130fadesi ve COUNT() Fonksiyonu: Veri Say\u0131m\u0131 ve Analizinde Derinlemesine Bir Bak\u0131\u015f - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2026-02-28T08:40:42+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/sql-select-ifadesi-ve-count-fonksiyonu-veri-sayimi-ve-analizinde-derinlemesine-bir-bakis\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/sql-select-ifadesi-ve-count-fonksiyonu-veri-sayimi-ve-analizinde-derinlemesine-bir-bakis\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/sql-select-ifadesi-ve-count-fonksiyonu-veri-sayimi-ve-analizinde-derinlemesine-bir-bakis\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"SQL SELECT \u0130fadesi ve COUNT() Fonksiyonu: Veri Say\u0131m\u0131 ve Analizinde Derinlemesine Bir Bak\u0131\u015f"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/40666","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=40666"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/40666\/revisions"}],"predecessor-version":[{"id":40667,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/40666\/revisions\/40667"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=40666"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=40666"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=40666"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}