{"id":27462,"date":"2025-08-13T18:17:36","date_gmt":"2025-08-13T15:17:36","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/postgresql-birden-fazla-sutuna-gore-benzersiz-degerleri-sayma\/"},"modified":"2025-08-13T18:17:36","modified_gmt":"2025-08-13T15:17:36","slug":"postgresql-birden-fazla-sutuna-gore-benzersiz-degerleri-sayma","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/postgresql-birden-fazla-sutuna-gore-benzersiz-degerleri-sayma\/","title":{"rendered":"PostgreSQL: Birden Fazla S\u00fctuna G\u00f6re Benzersiz De\u011ferleri Sayma"},"content":{"rendered":"<p># PostgreSQL&#8217;de Birden \u00c7ok S\u00fctuna Ait Benzersiz Kay\u0131t Say\u0131s\u0131n\u0131 Nas\u0131l Sayabiliriz?<\/p>\n<p><strong>Meta A\u00e7\u0131klamas\u0131:<\/strong> PostgreSQL veritaban\u0131n\u0131zda birden \u00e7ok s\u00fctuna ait benzersiz kay\u0131t say\u0131s\u0131n\u0131 \u00f6\u011frenmek mi istiyorsunuz? Bu makale, yeni ba\u015flayanlardan uzmanlara kadar herkes i\u00e7in ad\u0131m ad\u0131m bir rehber sunarak, ger\u00e7ek d\u00fcnya \u00f6rnekleriyle ve performans optimizasyon ipu\u00e7lar\u0131yla PostgreSQL&#8217;de DISTINCT COUNT i\u015flemini nas\u0131l ger\u00e7ekle\u015ftirece\u011finizi a\u00e7\u0131kl\u0131yor.  COUNT(DISTINCT column1, column2,&#8230;) fonksiyonunun kullan\u0131m\u0131n\u0131 ve performans\u0131n\u0131 detayl\u0131 olarak ele al\u0131yoruz.<\/p>\n<p>Bir e-ticaret platformu d\u00fc\u015f\u00fcn\u00fcn.  M\u00fc\u015fterilerin sipari\u015f verdikleri \u00fcr\u00fcn kombinasyonlar\u0131n\u0131 analiz etmek istiyorsunuz.  Her sipari\u015fte birden fazla \u00fcr\u00fcn bulunabilir ve ayn\u0131 \u00fcr\u00fcn kombinasyonlar\u0131 tekrarlanabilir.  Peki, ka\u00e7 farkl\u0131 \u00fcr\u00fcn kombinasyonu oldu\u011funu nas\u0131l bulabilirsiniz?  \u0130\u015fte tam bu noktada PostgreSQL&#8217;in g\u00fc\u00e7l\u00fc <code class=\"language-\">COUNT(DISTINCT ...)<\/code> fonksiyonu devreye giriyor. Bu makale, birden \u00e7ok s\u00fctuna ait benzersiz kay\u0131t say\u0131s\u0131n\u0131 PostgreSQL&#8217;de nas\u0131l hesaplayaca\u011f\u0131n\u0131z\u0131 ad\u0131m ad\u0131m, ger\u00e7ek d\u00fcnya \u00f6rnekleriyle ve performans optimizasyon teknikleriyle anlatacakt\u0131r.  Farkl\u0131 seviyelerdeki kullan\u0131c\u0131lar i\u00e7in haz\u0131rlanm\u0131\u015f bu rehber, PostgreSQL yeteneklerinizi ileri seviyeye ta\u015f\u0131man\u0131za yard\u0131mc\u0131 olacakt\u0131r.<\/p>\n<p><strong>\u00d6\u011frenme Yol Haritas\u0131<\/strong><\/p>\n<p>Bu rehber, PostgreSQL&#8217;de birden \u00e7ok s\u00fctuna ait benzersiz kay\u0131tlar\u0131 sayma konusunda farkl\u0131 seviyelerdeki kullan\u0131c\u0131lar i\u00e7in haz\u0131rlanm\u0131\u015ft\u0131r.  A\u015fa\u011f\u0131daki yol haritas\u0131n\u0131 takip ederek, konuyu ad\u0131m ad\u0131m \u00f6\u011frenebilirsiniz:<\/p>\n<p><strong># Yeni Ba\u015flayan: Temel Kavramlar ve Basit Bir \u00d6rnek<\/strong><\/p>\n<p>PostgreSQL&#8217;de <code class=\"language-\">COUNT()<\/code> fonksiyonu, bir tablodaki sat\u0131r say\u0131s\u0131n\u0131 saymak i\u00e7in kullan\u0131l\u0131r.  <code class=\"language-\">DISTINCT<\/code> anahtar kelimesi ise, sadece benzersiz de\u011ferleri saymam\u0131z\u0131 sa\u011flar.  Birden \u00e7ok s\u00fctuna uygulanmas\u0131 durumunda, benzersiz s\u00fctun kombinasyonlar\u0131n\u0131n say\u0131s\u0131n\u0131 hesaplar.<\/p>\n<p>\u00d6rne\u011fin, <code class=\"language-\">urunler<\/code> ad\u0131nda bir tablomuz olsun ve bu tabloda <code class=\"language-\">urun_adi<\/code> ve <code class=\"language-\">kategori<\/code> s\u00fctunlar\u0131 bulunsun.  A\u015fa\u011f\u0131daki sorgu, farkl\u0131 \u00fcr\u00fcn adlar\u0131 ve kategorilerinin ka\u00e7 farkl\u0131 kombinasyonunun oldu\u011funu sayar:<\/p>\n<pre class=\"language-sql\"><code>SELECT COUNT(DISTINCT urun_adi, kategori) AS farkli_urun_kombinasyonlari\nFROM urunler;<\/code><\/pre>\n<p>Bu sorgu, <code class=\"language-\">urun_adi<\/code> ve <code class=\"language-\">kategori<\/code> s\u00fctunlar\u0131n\u0131n t\u00fcm olas\u0131 benzersiz kombinasyonlar\u0131n\u0131 sayar ve sonucu <code class=\"language-\">farkli_urun_kombinasyonlari<\/code> olarak adland\u0131r\u0131lan bir s\u00fctuna yazar.  E\u011fer ayn\u0131 \u00fcr\u00fcn ad\u0131 ve kategori kombinasyonu birden fazla kez varsa, sadece bir kez say\u0131l\u0131r.<\/p>\n<p><strong>Basit bir \u00f6rnek:<\/strong>  A\u015fa\u011f\u0131daki verilerle <code class=\"language-\">urunler<\/code> tablosunu olu\u015ftural\u0131m:<\/p>\n<p>| urun_adi | kategori |<br \/>\n|&#8212;|&#8212;|<br \/>\n| Elma | Meyve |<br \/>\n| Armut | Meyve |<br \/>\n| Elma | Meyve |<br \/>\n| Muz | Meyve |<br \/>\n| Elma | Sebze |<\/p>\n<p>Yukar\u0131daki sorguyu \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131m\u0131zda sonu\u00e7 3 olacakt\u0131r, \u00e7\u00fcnk\u00fc \u00fc\u00e7 farkl\u0131 \u00fcr\u00fcn-kategori kombinasyonu vard\u0131r (Elma-Meyve, Armut-Meyve, Muz-Meyve, Elma-Sebze).<\/p>\n<p><strong># Orta Seviye: Ger\u00e7ek Hayat \u00d6rne\u011fi ve Optimizasyon \u0130pu\u00e7lar\u0131<\/strong><\/p>\n<p>\u015eimdi, daha ger\u00e7ek\u00e7i bir senaryo ele alal\u0131m.  Bir e-ticaret sitesinin sipari\u015f verilerini i\u00e7eren bir tablo d\u00fc\u015f\u00fcnelim:<\/p>\n<pre class=\"language-sql\"><code>CREATE TABLE siparisler (\n    siparis_id INT PRIMARY KEY,\n    musteri_id INT,\n    urun_id INT,\n    siparis_tarihi DATE\n);<\/code><\/pre>\n<p>Bir m\u00fc\u015fterinin ayn\u0131 g\u00fcn i\u00e7inde ayn\u0131 \u00fcr\u00fcnden birden fazla sipari\u015f verdi\u011fini d\u00fc\u015f\u00fcn\u00fcrsek,  ayn\u0131 g\u00fcn i\u00e7inde hangi \u00fcr\u00fcnlerin ka\u00e7 farkl\u0131 kombinasyonuyla sipari\u015f verildi\u011fini bulmak i\u00e7in a\u015fa\u011f\u0131daki sorguyu kullanabiliriz:<\/p>\n<pre class=\"language-sql\"><code>SELECT COUNT(DISTINCT urun_id, siparis_tarihi) AS farkli_urun_kombinasyonlari\nFROM siparisler\nWHERE musteri_id = 1;<\/code><\/pre>\n<p>Bu sorgu, belirli bir m\u00fc\u015fterinin (m\u00fc\u015fteri_id = 1) sipari\u015flerinde, her g\u00fcn i\u00e7in farkl\u0131 \u00fcr\u00fcn kombinasyonlar\u0131n\u0131n say\u0131s\u0131n\u0131 hesaplar.<\/p>\n<p><strong>Optimizasyon \u0130pu\u00e7lar\u0131:<\/strong><\/p>\n<p>* <strong>\u0130ndeksler:<\/strong>  <code class=\"language-\">urun_id<\/code> ve <code class=\"language-\">siparis_tarihi<\/code> s\u00fctunlar\u0131na indeks eklemek, sorgu performans\u0131n\u0131 \u00f6nemli \u00f6l\u00e7\u00fcde art\u0131rabilir.  \u00d6zellikle b\u00fcy\u00fck veri k\u00fcmeleri i\u00e7in indeksleme \u00e7ok \u00f6nemlidir.<br \/>\n* <strong>WHERE ko\u015fulu:<\/strong>  Sorguya <code class=\"language-\">WHERE<\/code> ko\u015fulu eklemek, taranacak veri miktar\u0131n\u0131 azaltarak performans\u0131 iyile\u015ftirir.<br \/>\n* <strong>Par\u00e7alama (Partitioning):<\/strong>  \u00c7ok b\u00fcy\u00fck tablolar i\u00e7in, tabloyu sipari\u015f tarihine g\u00f6re par\u00e7alamak, sorgu performans\u0131n\u0131 \u00f6nemli \u00f6l\u00e7\u00fcde iyile\u015ftirebilir.<\/p>\n<p><strong># \u0130leri D\u00fczey: Performans Analizi ve Edge Case&#8217;ler<\/strong><\/p>\n<p>\u00c7ok b\u00fcy\u00fck veri k\u00fcmeleriyle \u00e7al\u0131\u015f\u0131rken, <code class=\"language-\">COUNT(DISTINCT ...)<\/code> fonksiyonunun performans\u0131 d\u00fc\u015febilir.  Bu durumda, alternatif y\u00f6ntemler kullanmak gerekebilir.  \u00d6rne\u011fin,  <code class=\"language-\">GROUP BY<\/code> ile birlikte <code class=\"language-\">COUNT(*)<\/code> kullanarak benzersiz kombinasyonlar\u0131 gruplayabilir ve ard\u0131ndan sonu\u00e7 say\u0131s\u0131n\u0131 sayabiliriz:<\/p>\n<pre class=\"language-sql\"><code>SELECT COUNT(*) AS farkli_urun_kombinasyonlari\nFROM (\n    SELECT urun_id, siparis_tarihi\n    FROM siparisler\n    WHERE musteri_id = 1\n    GROUP BY urun_id, siparis_tarihi\n) AS benzersiz_kombinasyonlar;<\/code><\/pre>\n<p>Bu y\u00f6ntem, \u00f6zellikle b\u00fcy\u00fck veri k\u00fcmeleri i\u00e7in daha performansl\u0131 olabilir.  Ancak, performans her zaman veri da\u011f\u0131l\u0131m\u0131na ve indekslere ba\u011fl\u0131d\u0131r.  Dolay\u0131s\u0131yla, her iki y\u00f6ntemi de test ederek en uygun olan\u0131n\u0131 se\u00e7mek \u00f6nemlidir.<\/p>\n<p><strong>Performans Analizi:<\/strong>  PostgreSQL&#8217;in <code class=\"language-\">EXPLAIN<\/code> komutu, sorgu plan\u0131n\u0131 analiz ederek performans darbo\u011fazlar\u0131n\u0131 belirlememize yard\u0131mc\u0131 olur.  <code class=\"language-\">EXPLAIN<\/code> komutunun \u00e7\u0131kt\u0131s\u0131n\u0131 inceleyerek, indeks eksikli\u011fi, k\u00f6t\u00fc sorgu plan\u0131 gibi sorunlar\u0131 tespit edebilir ve performans\u0131 iyile\u015ftirmek i\u00e7in ad\u0131mlar atabiliriz.<\/p>\n<p><strong>Edge Case&#8217;ler:<\/strong> NULL de\u011ferler <code class=\"language-\">COUNT(DISTINCT ...)<\/code> fonksiyonunun \u00e7\u0131kt\u0131s\u0131n\u0131 etkileyebilir.  E\u011fer NULL de\u011ferleri dikkate almak istemiyorsan\u0131z, <code class=\"language-\">COALESCE()<\/code> fonksiyonunu kullanarak NULL de\u011ferleri ba\u015fka bir de\u011ferle de\u011fi\u015ftirebilirsiniz.<\/p>\n<p><strong>PostgreSQL&#8217;de DISTINCT COUNT Kullan\u0131m\u0131na \u0130li\u015fkin Uygulamal\u0131 K\u0131lavuz<\/strong><\/p>\n<p>Bu b\u00f6l\u00fcmde, farkl\u0131 senaryolarda <code class=\"language-\">COUNT(DISTINCT ...)<\/code> fonksiyonunun kullan\u0131m\u0131n\u0131 ad\u0131m ad\u0131m a\u00e7\u0131klayaca\u011f\u0131z.<\/p>\n<p><strong>Senaryo 1: \u00dcr\u00fcn Kategorileri ve Markalar\u0131<\/strong><\/p>\n<p>Bir e-ticaret veritaban\u0131nda \u00fcr\u00fcnlerin kategorileri ve markalar\u0131 hakk\u0131nda bilgi sakl\u0131yoruz. A\u015fa\u011f\u0131daki tablo yap\u0131s\u0131na sahibiz:<\/p>\n<pre class=\"language-sql\"><code>CREATE TABLE urunler (\n    urun_id SERIAL PRIMARY KEY,\n    kategori VARCHAR(50),\n    marka VARCHAR(50)\n);<\/code><\/pre>\n<p>Farkl\u0131 kategori-marka kombinasyonlar\u0131n\u0131n say\u0131s\u0131n\u0131 bulmak i\u00e7in a\u015fa\u011f\u0131daki sorguyu kullanabiliriz:<\/p>\n<pre class=\"language-sql\"><code>SELECT COUNT(DISTINCT kategori, marka) AS farkli_kategori_marka_kombinasyonlari FROM urunler;<\/code><\/pre>\n<p><strong>Senaryo 2: M\u00fc\u015fteri \u015eehir ve \u00dclke Kombinasyonlar\u0131<\/strong><\/p>\n<p>M\u00fc\u015fteri bilgilerini i\u00e7eren bir tablo d\u00fc\u015f\u00fcnelim:<\/p>\n<pre class=\"language-sql\"><code>CREATE TABLE musteriler (\n    musteri_id SERIAL PRIMARY KEY,\n    sehir VARCHAR(50),\n    ulke VARCHAR(50)\n);<\/code><\/pre>\n<p>Farkl\u0131 \u015fehir-\u00fclke kombinasyonlar\u0131n\u0131n say\u0131s\u0131n\u0131 bulmak i\u00e7in:<\/p>\n<pre class=\"language-sql\"><code>SELECT COUNT(DISTINCT sehir, ulke) AS farkli_sehir_ulke_kombinasyonlari FROM musteriler;<\/code><\/pre>\n<p><strong>Senaryo 3: Sipari\u015f Tarihi ve \u00dcr\u00fcn Kodu Kombinasyonlar\u0131 (Performans Optimizasyonu)<\/strong><\/p>\n<p>Sipari\u015fler tablosunda sipari\u015f tarihi ve \u00fcr\u00fcn kodu kombinasyonlar\u0131n\u0131n say\u0131s\u0131n\u0131 bulmak istiyoruz.  Veri miktar\u0131 \u00e7ok b\u00fcy\u00fckse performans optimizasyonu \u00f6nemlidir.  \u0130ndeks ekleyip <code class=\"language-\">EXPLAIN<\/code> komutunu kullanarak performans\u0131 analiz edebiliriz:<\/p>\n<pre class=\"language-sql\"><code>CREATE INDEX idx_siparisler_tarih_urun ON siparisler (siparis_tarihi, urun_kodu);\n\nEXPLAIN ANALYZE SELECT COUNT(DISTINCT siparis_tarihi, urun_kodu) FROM siparisler;<\/code><\/pre>\n<p>Bu \u00f6rnekte, <code class=\"language-\">siparis_tarihi<\/code> ve <code class=\"language-\">urun_kodu<\/code> s\u00fctunlar\u0131na birle\u015fik bir indeks ekledik. <code class=\"language-\">EXPLAIN ANALYZE<\/code> ile sorgu plan\u0131n\u0131 ve y\u00fcr\u00fctme s\u00fcresini inceleyerek optimizasyonun etkisini g\u00f6rebiliriz.<\/p>\n<p><strong>Sonu\u00e7<\/strong><\/p>\n<p>Bu makale, PostgreSQL&#8217;de birden \u00e7ok s\u00fctuna ait benzersiz kay\u0131t say\u0131s\u0131n\u0131 hesaplaman\u0131n farkl\u0131 yollar\u0131n\u0131 ve performans optimizasyon tekniklerini ele ald\u0131.  <code class=\"language-\">COUNT(DISTINCT ...)<\/code> fonksiyonunun kullan\u0131m\u0131, ger\u00e7ek d\u00fcnya senaryolar\u0131 ve farkl\u0131 optimizasyon stratejileri detayl\u0131 olarak a\u00e7\u0131kland\u0131.  Veri b\u00fcy\u00fckl\u00fc\u011f\u00fcne ve performans gereksinimlerine ba\u011fl\u0131 olarak en uygun y\u00f6ntemi se\u00e7mek \u00f6nemlidir.  <code class=\"language-\">EXPLAIN<\/code> komutunu kullanarak sorgu plan\u0131n\u0131 analiz etmek ve indeksleme stratejilerini iyile\u015ftirmek, performans\u0131 \u00f6nemli \u00f6l\u00e7\u00fcde art\u0131rabilir.  Daha fazla bilgi i\u00e7in [Fatih Soysal&#8217;\u0131n bloguna](https:\/\/fatihsoysal.com) g\u00f6z atabilirsiniz.<\/p>\n<p><strong>S\u0131k\u00e7a Sorulan Sorular:<\/strong><\/p>\n<p>1. <strong>NULL de\u011ferler nas\u0131l ele al\u0131n\u0131r?<\/strong>  <code class=\"language-\">COUNT(DISTINCT ...)<\/code> fonksiyonu NULL de\u011ferleri dikkate almaz.  E\u011fer NULL de\u011ferleri dikkate almak istiyorsan\u0131z, <code class=\"language-\">COALESCE()<\/code> fonksiyonunu kullanarak NULL de\u011ferlerini ba\u015fka bir de\u011ferle de\u011fi\u015ftirebilirsiniz.<\/p>\n<p>2. <strong>\u00c7ok say\u0131da s\u00fctun i\u00e7in performans nas\u0131l iyile\u015ftirilir?<\/strong>  \u00c7ok say\u0131da s\u00fctun i\u00e7in performans\u0131 iyile\u015ftirmek i\u00e7in, ilgili s\u00fctunlara birle\u015fik indeksler eklemek ve gerekti\u011finde <code class=\"language-\">GROUP BY<\/code> ile birlikte <code class=\"language-\">COUNT(*)<\/code> kullanmak \u00f6nemlidir.<\/p>\n<p>3. <strong><code class=\"language-\">COUNT(DISTINCT ...)<\/code> fonksiyonu hangi veri tipleriyle \u00e7al\u0131\u015f\u0131r?<\/strong>  <code class=\"language-\">COUNT(DISTINCT ...)<\/code> fonksiyonu hemen hemen t\u00fcm veri tipleriyle \u00e7al\u0131\u015f\u0131r.<\/p>\n<p>4. <strong>PostgreSQL&#8217;in hangi s\u00fcr\u00fcmleri bu fonksiyonu destekler?<\/strong>  PostgreSQL&#8217;in t\u00fcm modern s\u00fcr\u00fcmleri bu fonksiyonu destekler.<\/p>\n<p>5. <strong>Performans sorunlar\u0131 ya\u015farsam ne yapmal\u0131y\u0131m?<\/strong>  Performans sorunlar\u0131 ya\u015farsan\u0131z, <code class=\"language-\">EXPLAIN ANALYZE<\/code> komutunu kullanarak sorgu plan\u0131n\u0131 analiz edin ve indeksleme stratejilerini g\u00f6zden ge\u00e7irin.  Gerekirse, farkl\u0131 sorgu yazma tekniklerini deneyin veya veritaban\u0131 y\u00f6netim sisteminizin performans ayarlar\u0131n\u0131 inceleyin.<\/p>\n<p>Yazar: Fatih Soysal<\/p>\n","protected":false},"excerpt":{"rendered":"# PostgreSQL&#8217;de Birden \u00c7ok S\u00fctuna Ait Benzersiz Kay\u0131t Say\u0131s\u0131n\u0131 Nas\u0131l Sayabiliriz? Meta A\u00e7\u0131klamas\u0131: PostgreSQL veritaban\u0131n\u0131zda birden \u00e7ok s\u00fctuna&hellip;","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":[644],"tags":[],"class_list":{"0":"post-27462","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-postgresql","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>PostgreSQL: Birden Fazla S\u00fctuna G\u00f6re Benzersiz De\u011ferleri Sayma<\/title>\n<meta name=\"description\" content=\"Hi\u00e7bir etiketi bulunamad\u0131.\" \/>\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\/postgresql-birden-fazla-sutuna-gore-benzersiz-degerleri-sayma\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"PostgreSQL: Birden Fazla S\u00fctuna G\u00f6re Benzersiz De\u011ferleri Sayma\" \/>\n<meta property=\"og:description\" content=\"Hi\u00e7bir etiketi bulunamad\u0131.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/postgresql-birden-fazla-sutuna-gore-benzersiz-degerleri-sayma\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-08-13T15:17:36+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=\"7 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/postgresql-birden-fazla-sutuna-gore-benzersiz-degerleri-sayma\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/postgresql-birden-fazla-sutuna-gore-benzersiz-degerleri-sayma\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"PostgreSQL: Birden Fazla S\u00fctuna G\u00f6re Benzersiz De\u011ferleri Sayma\",\"datePublished\":\"2025-08-13T15:17:36+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/postgresql-birden-fazla-sutuna-gore-benzersiz-degerleri-sayma\/\"},\"wordCount\":1180,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"PostgreSQL\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/postgresql-birden-fazla-sutuna-gore-benzersiz-degerleri-sayma\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/postgresql-birden-fazla-sutuna-gore-benzersiz-degerleri-sayma\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/postgresql-birden-fazla-sutuna-gore-benzersiz-degerleri-sayma\/\",\"name\":\"PostgreSQL: Birden Fazla S\u00fctuna G\u00f6re Benzersiz De\u011ferleri Sayma\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-08-13T15:17:36+00:00\",\"description\":\"Hi\u00e7bir etiketi bulunamad\u0131.\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/postgresql-birden-fazla-sutuna-gore-benzersiz-degerleri-sayma\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/postgresql-birden-fazla-sutuna-gore-benzersiz-degerleri-sayma\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/postgresql-birden-fazla-sutuna-gore-benzersiz-degerleri-sayma\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"PostgreSQL: Birden Fazla S\u00fctuna G\u00f6re Benzersiz De\u011ferleri Sayma\"}]},{\"@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":"PostgreSQL: Birden Fazla S\u00fctuna G\u00f6re Benzersiz De\u011ferleri Sayma","description":"Hi\u00e7bir etiketi bulunamad\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\/postgresql-birden-fazla-sutuna-gore-benzersiz-degerleri-sayma\/","og_locale":"tr_TR","og_type":"article","og_title":"PostgreSQL: Birden Fazla S\u00fctuna G\u00f6re Benzersiz De\u011ferleri Sayma","og_description":"Hi\u00e7bir etiketi bulunamad\u0131.","og_url":"https:\/\/fatihsoysal.com\/blog\/postgresql-birden-fazla-sutuna-gore-benzersiz-degerleri-sayma\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-08-13T15:17:36+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"7 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/postgresql-birden-fazla-sutuna-gore-benzersiz-degerleri-sayma\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/postgresql-birden-fazla-sutuna-gore-benzersiz-degerleri-sayma\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"PostgreSQL: Birden Fazla S\u00fctuna G\u00f6re Benzersiz De\u011ferleri Sayma","datePublished":"2025-08-13T15:17:36+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/postgresql-birden-fazla-sutuna-gore-benzersiz-degerleri-sayma\/"},"wordCount":1180,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["PostgreSQL"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/postgresql-birden-fazla-sutuna-gore-benzersiz-degerleri-sayma\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/postgresql-birden-fazla-sutuna-gore-benzersiz-degerleri-sayma\/","url":"https:\/\/fatihsoysal.com\/blog\/postgresql-birden-fazla-sutuna-gore-benzersiz-degerleri-sayma\/","name":"PostgreSQL: Birden Fazla S\u00fctuna G\u00f6re Benzersiz De\u011ferleri Sayma","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-08-13T15:17:36+00:00","description":"Hi\u00e7bir etiketi bulunamad\u0131.","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/postgresql-birden-fazla-sutuna-gore-benzersiz-degerleri-sayma\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/postgresql-birden-fazla-sutuna-gore-benzersiz-degerleri-sayma\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/postgresql-birden-fazla-sutuna-gore-benzersiz-degerleri-sayma\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"PostgreSQL: Birden Fazla S\u00fctuna G\u00f6re Benzersiz De\u011ferleri Sayma"}]},{"@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\/27462","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=27462"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/27462\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=27462"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=27462"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=27462"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}