{"id":25464,"date":"2025-07-06T21:15:20","date_gmt":"2025-07-06T18:15:20","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/postgresql-iki-sutunun-benzersiz-kombinasyonlarinin-sayimi\/"},"modified":"2025-07-06T21:15:20","modified_gmt":"2025-07-06T18:15:20","slug":"postgresql-iki-sutunun-benzersiz-kombinasyonlarinin-sayimi","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/postgresql-iki-sutunun-benzersiz-kombinasyonlarinin-sayimi\/","title":{"rendered":"PostgreSQL: \u0130ki S\u00fctunun Benzersiz Kombinasyonlar\u0131n\u0131n Say\u0131m\u0131"},"content":{"rendered":"<p># PostgreSQL&#8217;de \u0130ki S\u00fctunun Benzersiz Kombinasyonlar\u0131n\u0131 Saymak<\/p>\n<p>PostgreSQL veritaban\u0131n\u0131zda iki s\u00fctunun benzersiz kombinasyonlar\u0131n\u0131 sayman\u0131z m\u0131 gerekiyor?  \u00d6rne\u011fin, bir e-ticaret sitesindeki m\u00fc\u015fterilerin sat\u0131n ald\u0131\u011f\u0131 \u00fcr\u00fcnlerin benzersiz kombinasyonlar\u0131n\u0131 m\u0131 analiz etmek istiyorsunuz, ya da bir sosyal medya platformunda kullan\u0131c\u0131lar\u0131n takip etti\u011fi benzersiz profil \u00e7iftlerini mi belirlemek istiyorsunuz? Bu makale, PostgreSQL kullanarak bu t\u00fcr benzersiz kombinasyonlar\u0131 sayman\u0131n farkl\u0131 y\u00f6ntemlerini, performans optimizasyon tekniklerini ve ger\u00e7ek d\u00fcnya senaryolar\u0131n\u0131 ele alarak ad\u0131m ad\u0131m bir rehber sunmaktad\u0131r.  PostgreSQL&#8217;in g\u00fc\u00e7l\u00fc yeteneklerini kullanarak verilerinizden anlaml\u0131 i\u00e7g\u00f6r\u00fcler elde etmenizi sa\u011flayacak pratik \u00e7\u00f6z\u00fcmler bulacaks\u0131n\u0131z.<\/p>\n<p><strong>\u00d6\u011frenme Yol Haritas\u0131<\/strong><\/p>\n<p>Bu makale, PostgreSQL&#8217;de iki s\u00fctunun benzersiz kombinasyonlar\u0131n\u0131 saymay\u0131 \u00f6\u011frenmek i\u00e7in \u00fc\u00e7 seviyeli bir yol haritas\u0131 sunmaktad\u0131r:<\/p>\n<p><strong>Yeni Ba\u015flayan:<\/strong> Temel SQL sorgular\u0131 ve <code class=\"language-\">COUNT(DISTINCT)<\/code> fonksiyonunun kullan\u0131m\u0131 ile ba\u015flayaca\u011f\u0131z. Basit bir \u00f6rnek \u00fczerinden ad\u0131m ad\u0131m ilerleyece\u011fiz.<\/p>\n<p><strong>Orta Seviye:<\/strong> Ger\u00e7ek d\u00fcnya senaryolar\u0131na ve daha karma\u015f\u0131k sorgulara ge\u00e7ece\u011fiz.  Performans optimizasyonu i\u00e7in ipu\u00e7lar\u0131 ve farkl\u0131 yakla\u015f\u0131m y\u00f6ntemleri ele al\u0131nacakt\u0131r.<\/p>\n<p><strong>\u0130leri Seviye:<\/strong> Karma\u015f\u0131k sorgular\u0131n performans analizi ve optimize edilmesi,  <code class=\"language-\">edge case<\/code>&#8216;ler ve olas\u0131 sorunlar ile ba\u015fa \u00e7\u0131kma stratejileri incelenecektir.<\/p>\n<p><strong>PostgreSQL Temelleri: COUNT(DISTINCT) Fonksiyonu ve SET Operat\u00f6rleri<\/strong><\/p>\n<p>PostgreSQL&#8217;de benzersiz de\u011ferleri sayman\u0131n en yayg\u0131n yolu <code class=\"language-\">COUNT(DISTINCT)<\/code> fonksiyonudur. Bu fonksiyon, belirtilen s\u00fctunlardaki benzersiz de\u011ferlerin say\u0131s\u0131n\u0131 d\u00f6nd\u00fcr\u00fcr.  Ancak, iki s\u00fctunun kombinasyonunu saymak i\u00e7in do\u011frudan <code class=\"language-\">COUNT(DISTINCT s\u00fctun1, s\u00fctun2)<\/code> kullanmak yeterli olmayabilir. \u00c7\u00fcnk\u00fc bu, her iki s\u00fctunun ayn\u0131 anda benzersiz de\u011ferlerini sayar.  Bizim ihtiyac\u0131m\u0131z olan ise, s\u00fctun \u00e7iftlerinin benzersiz kombinasyonlar\u0131n\u0131 saymakt\u0131r.<\/p>\n<p>\u00d6rne\u011fin, a\u015fa\u011f\u0131daki tabloda m\u00fc\u015fterilerin sat\u0131n ald\u0131\u011f\u0131 \u00fcr\u00fcnler yer als\u0131n:<\/p>\n<p>| M\u00fc\u015fteriID | \u00dcr\u00fcnID |<br \/>\n|&#8212;|&#8212;|<br \/>\n| 1 | 101 |<br \/>\n| 1 | 102 |<br \/>\n| 2 | 101 |<br \/>\n| 3 | 103 |<br \/>\n| 1 | 101 |<\/p>\n<p><code class=\"language-\">COUNT(DISTINCT M\u00fc\u015fteriID, \u00dcr\u00fcnID)<\/code> sorgusu, (1,101), (1,102), (2,101), (3,103) gibi d\u00f6rt benzersiz kombinasyonu sayacakt\u0131r. Ancak (1,101) \u00e7iftinin iki kez tekrarland\u0131\u011f\u0131n\u0131 g\u00f6z \u00f6n\u00fcnde bulundurursak bu yeterli de\u011fildir.<\/p>\n<p><strong>PostgreSQL&#8217;de \u0130ki S\u00fctunun Benzersiz Kombinasyonlar\u0131n\u0131 Sayma: Ad\u0131m Ad\u0131m Uygulama<\/strong><\/p>\n<p><strong>Yeni Ba\u015flayan:<\/strong><\/p>\n<p>A\u015fa\u011f\u0131daki SQL sorgusu, <code class=\"language-\">m\u00fc\u015fteri_\u00fcr\u00fcn<\/code> tablosunda bulunan M\u00fc\u015fteriID ve \u00dcr\u00fcnID s\u00fctunlar\u0131n\u0131n benzersiz kombinasyonlar\u0131n\u0131 sayar:<\/p>\n<pre class=\"language-sql\"><code>SELECT COUNT(*) \nFROM (\n    SELECT DISTINCT M\u00fc\u015fteriID, \u00dcr\u00fcnID\n    FROM m\u00fc\u015fteri_\u00fcr\u00fcn\n) AS unique_combinations;<\/code><\/pre>\n<p>Bu sorgu \u00f6nce i\u00e7 sorgu ile benzersiz M\u00fc\u015fteriID ve \u00dcr\u00fcnID kombinasyonlar\u0131n\u0131 se\u00e7er ve daha sonra d\u0131\u015f sorgu bu benzersiz kombinasyonlar\u0131n say\u0131s\u0131n\u0131 hesaplar.  Bu, yeni ba\u015flayanlar i\u00e7in en anla\u015f\u0131l\u0131r ve basit y\u00f6ntemdir.<\/p>\n<p><strong>Orta Seviye:<\/strong><\/p>\n<p>\u015eimdi, bir e-ticaret sitesindeki sat\u0131\u015f verilerini ele alal\u0131m.  Her sat\u0131r bir sipari\u015fi temsil etsin ve <code class=\"language-\">siparisler<\/code> tablosunda <code class=\"language-\">musteri_id<\/code> ve <code class=\"language-\">urun_id<\/code> s\u00fctunlar\u0131 olsun.  A\u015fa\u011f\u0131daki sorgu, her m\u00fc\u015fterinin sat\u0131n ald\u0131\u011f\u0131 benzersiz \u00fcr\u00fcn kombinasyonlar\u0131n\u0131n say\u0131s\u0131n\u0131 verir:<\/p>\n<pre class=\"language-sql\"><code>SELECT COUNT(*)\nFROM (\n  SELECT DISTINCT ARRAY[musteri_id, urun_id] AS unique_combinations\n  FROM siparisler\n) AS unique_combinations_count;<\/code><\/pre>\n<p>Bu sorgu, <code class=\"language-\">ARRAY<\/code> fonksiyonunu kullanarak her m\u00fc\u015fteri-\u00fcr\u00fcn \u00e7iftini bir diziye d\u00f6n\u00fc\u015ft\u00fcr\u00fcr ve daha sonra <code class=\"language-\">DISTINCT<\/code> ile benzersiz kombinasyonlar\u0131 se\u00e7er. Bu y\u00f6ntem, b\u00fcy\u00fck veri k\u00fcmeleri i\u00e7in daha verimli olabilir.  <code class=\"language-\">GROUP BY<\/code> kullan\u0131m\u0131yla da m\u00fc\u015fteri baz\u0131nda benzersiz \u00fcr\u00fcn say\u0131s\u0131 bulunabilir.<\/p>\n<p><strong>\u0130leri Seviye:<\/strong><\/p>\n<p>Daha karma\u015f\u0131k bir senaryo olarak, bir m\u00fc\u015fterinin bir sipari\u015fte birden fazla \u00fcr\u00fcn sat\u0131n ald\u0131\u011f\u0131n\u0131 ve bu \u00fcr\u00fcnlerin kombinasyonlar\u0131n\u0131n say\u0131s\u0131n\u0131 bulmak istedi\u011fimizi d\u00fc\u015f\u00fcnelim.  Bu durumda,  <code class=\"language-\">jsonb<\/code> veri tipi kullan\u0131labilir:<\/p>\n<pre class=\"language-sql\"><code>SELECT COUNT(*)\nFROM (\n    SELECT DISTINCT jsonb_agg(jsonb_build_object('urun_id', urun_id)) AS urun_kombinasyonlari\n    FROM siparisler\n    GROUP BY musteri_id\n) as benzersiz_kombinasyonlar;<\/code><\/pre>\n<p>Bu sorgu, her m\u00fc\u015fteri i\u00e7in sat\u0131n al\u0131nan \u00fcr\u00fcnleri bir <code class=\"language-\">jsonb<\/code> dizisi olarak birle\u015ftirir ve daha sonra benzersiz kombinasyonlar\u0131 sayar. Bu, karma\u015f\u0131k verileri y\u00f6netmek i\u00e7in g\u00fc\u00e7l\u00fc bir y\u00f6ntemdir, ancak performans analizi ve indeksleme \u00f6nemlidir.<\/p>\n<p><strong>Performans Optimizasyonu<\/strong><\/p>\n<p>B\u00fcy\u00fck veri k\u00fcmeleri i\u00e7in performans kritiktir.  A\u015fa\u011f\u0131daki teknikler performans\u0131 iyile\u015ftirmeye yard\u0131mc\u0131 olabilir:<\/p>\n<p>* <strong>\u0130ndeksleme:<\/strong> <code class=\"language-\">M\u00fc\u015fteriID<\/code> ve <code class=\"language-\">\u00dcr\u00fcnID<\/code> s\u00fctunlar\u0131na indeks eklemek, <code class=\"language-\">DISTINCT<\/code> i\u015flemini h\u0131zland\u0131racakt\u0131r.<br \/>\n* <strong>Materyalize G\u00f6r\u00fcn\u00fcmler:<\/strong> S\u0131k kullan\u0131lan sorgular i\u00e7in materyalize g\u00f6r\u00fcn\u00fcmler olu\u015fturmak, tekrarlanan hesaplamalar\u0131 \u00f6nler.<br \/>\n* <strong>Par\u00e7alama:<\/strong> B\u00fcy\u00fck tablolar\u0131 par\u00e7alamak, sorgular\u0131 daha k\u00fc\u00e7\u00fck veri k\u00fcmelerine indirger.<br \/>\n* <strong>Analiz:<\/strong> <code class=\"language-\">EXPLAIN ANALYZE<\/code> komutu ile sorgu plan\u0131n\u0131 inceleyerek darbo\u011fazlar\u0131 belirleyin ve optimize edin.<\/p>\n<p><strong>Ger\u00e7ek D\u00fcnya Senaryolar\u0131 ve Vaka Analizleri<\/strong><\/p>\n<p><strong>E-ticaret:<\/strong>  M\u00fc\u015fterilerin sat\u0131n ald\u0131\u011f\u0131 \u00fcr\u00fcn kombinasyonlar\u0131n\u0131 analiz ederek, \u00f6nerilen \u00fcr\u00fcnlerin do\u011frulu\u011funu art\u0131rabilir ve pazarlama stratejilerini geli\u015ftirebilirsiniz.<\/p>\n<p><strong>Sosyal Medya:<\/strong>  Kullan\u0131c\u0131lar\u0131n takip etti\u011fi di\u011fer kullan\u0131c\u0131lar\u0131n benzersiz kombinasyonlar\u0131n\u0131 analiz ederek, sosyal a\u011f yap\u0131s\u0131n\u0131 ve etkile\u015fim modellerini anlayabilirsiniz.<\/p>\n<p><strong>Sa\u011fl\u0131k:<\/strong>  Hastalar\u0131n sahip oldu\u011fu hastal\u0131klar\u0131n benzersiz kombinasyonlar\u0131n\u0131 analiz ederek, hastal\u0131klar\u0131n birlikte g\u00f6r\u00fclme s\u0131kl\u0131klar\u0131n\u0131 ve ili\u015fkilerini belirleyebilirsiniz.<\/p>\n<p><strong>S\u0131k\u00e7a Sorulan Sorular (SSS)<\/strong><\/p>\n<p>1. <strong>COUNT(DISTINCT) fonksiyonu ne kadar performansl\u0131d\u0131r?<\/strong>  B\u00fcy\u00fck veri k\u00fcmeleri i\u00e7in performans\u0131 d\u00fc\u015f\u00fcrebilir. \u0130ndeksleme ve di\u011fer optimizasyon teknikleri kullan\u0131lmal\u0131d\u0131r.<\/p>\n<p>2. <strong>\u0130ki s\u00fctunun yerine \u00fc\u00e7 veya daha fazla s\u00fctunun benzersiz kombinasyonlar\u0131n\u0131 nas\u0131l sayabilirim?<\/strong>  Yukar\u0131daki \u00f6rneklerdeki y\u00f6ntemleri geni\u015fletebilir, <code class=\"language-\">ARRAY<\/code> veya <code class=\"language-\">jsonb<\/code> kullanarak daha fazla s\u00fctunu birle\u015ftirip benzersiz kombinasyonlar\u0131 sayabilirsiniz.<\/p>\n<p>3. <strong>Benzersiz kombinasyonlar\u0131 sayman\u0131n ba\u015fka bir yolu var m\u0131?<\/strong>  <code class=\"language-\">GROUP BY<\/code> kullanarak da benzersiz kombinasyonlar\u0131 sayabilirsiniz, ancak bu y\u00f6ntem, <code class=\"language-\">COUNT(DISTINCT)<\/code>&#8216;e g\u00f6re daha karma\u015f\u0131k olabilir.<\/p>\n<p>4. <strong>Hangi y\u00f6ntem en verimlidir?<\/strong>  En verimli y\u00f6ntem, veri k\u00fcmesinin b\u00fcy\u00fckl\u00fc\u011f\u00fcne, veri da\u011f\u0131l\u0131m\u0131na ve di\u011fer fakt\u00f6rlere ba\u011fl\u0131d\u0131r.  Performans testleri yaparak en uygun y\u00f6ntemi belirlemek \u00f6nemlidir.<\/p>\n<p>5. <strong>Performans sorunlar\u0131yla kar\u015f\u0131la\u015ft\u0131\u011f\u0131mda ne yapmal\u0131y\u0131m?<\/strong>  <code class=\"language-\">EXPLAIN ANALYZE<\/code> komutunu kullanarak sorgu plan\u0131n\u0131 inceleyin, indeksleme, par\u00e7alama gibi optimizasyon tekniklerini uygulay\u0131n ve veritaban\u0131 y\u00f6neticinizle ileti\u015fime ge\u00e7in.<\/p>\n<p>Yazar: Fatih Soysal<\/p>\n","protected":false},"excerpt":{"rendered":"# PostgreSQL&#8217;de \u0130ki S\u00fctunun Benzersiz Kombinasyonlar\u0131n\u0131 Saymak PostgreSQL veritaban\u0131n\u0131zda iki s\u00fctunun benzersiz kombinasyonlar\u0131n\u0131 sayman\u0131z m\u0131 gerekiyor? \u00d6rne\u011fin, bir&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-25464","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: \u0130ki S\u00fctunun Benzersiz Kombinasyonlar\u0131n\u0131n Say\u0131m\u0131<\/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-iki-sutunun-benzersiz-kombinasyonlarinin-sayimi\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"PostgreSQL: \u0130ki S\u00fctunun Benzersiz Kombinasyonlar\u0131n\u0131n Say\u0131m\u0131\" \/>\n<meta property=\"og:description\" content=\"Hi\u00e7bir etiketi bulunamad\u0131.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/postgresql-iki-sutunun-benzersiz-kombinasyonlarinin-sayimi\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-07-06T18:15:20+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=\"5 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/postgresql-iki-sutunun-benzersiz-kombinasyonlarinin-sayimi\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/postgresql-iki-sutunun-benzersiz-kombinasyonlarinin-sayimi\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"PostgreSQL: \u0130ki S\u00fctunun Benzersiz Kombinasyonlar\u0131n\u0131n Say\u0131m\u0131\",\"datePublished\":\"2025-07-06T18:15:20+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/postgresql-iki-sutunun-benzersiz-kombinasyonlarinin-sayimi\/\"},\"wordCount\":955,\"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-iki-sutunun-benzersiz-kombinasyonlarinin-sayimi\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/postgresql-iki-sutunun-benzersiz-kombinasyonlarinin-sayimi\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/postgresql-iki-sutunun-benzersiz-kombinasyonlarinin-sayimi\/\",\"name\":\"PostgreSQL: \u0130ki S\u00fctunun Benzersiz Kombinasyonlar\u0131n\u0131n Say\u0131m\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-07-06T18:15:20+00:00\",\"description\":\"Hi\u00e7bir etiketi bulunamad\u0131.\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/postgresql-iki-sutunun-benzersiz-kombinasyonlarinin-sayimi\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/postgresql-iki-sutunun-benzersiz-kombinasyonlarinin-sayimi\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/postgresql-iki-sutunun-benzersiz-kombinasyonlarinin-sayimi\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"PostgreSQL: \u0130ki S\u00fctunun Benzersiz Kombinasyonlar\u0131n\u0131n Say\u0131m\u0131\"}]},{\"@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: \u0130ki S\u00fctunun Benzersiz Kombinasyonlar\u0131n\u0131n Say\u0131m\u0131","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-iki-sutunun-benzersiz-kombinasyonlarinin-sayimi\/","og_locale":"tr_TR","og_type":"article","og_title":"PostgreSQL: \u0130ki S\u00fctunun Benzersiz Kombinasyonlar\u0131n\u0131n Say\u0131m\u0131","og_description":"Hi\u00e7bir etiketi bulunamad\u0131.","og_url":"https:\/\/fatihsoysal.com\/blog\/postgresql-iki-sutunun-benzersiz-kombinasyonlarinin-sayimi\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-07-06T18:15:20+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"5 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/postgresql-iki-sutunun-benzersiz-kombinasyonlarinin-sayimi\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/postgresql-iki-sutunun-benzersiz-kombinasyonlarinin-sayimi\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"PostgreSQL: \u0130ki S\u00fctunun Benzersiz Kombinasyonlar\u0131n\u0131n Say\u0131m\u0131","datePublished":"2025-07-06T18:15:20+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/postgresql-iki-sutunun-benzersiz-kombinasyonlarinin-sayimi\/"},"wordCount":955,"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-iki-sutunun-benzersiz-kombinasyonlarinin-sayimi\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/postgresql-iki-sutunun-benzersiz-kombinasyonlarinin-sayimi\/","url":"https:\/\/fatihsoysal.com\/blog\/postgresql-iki-sutunun-benzersiz-kombinasyonlarinin-sayimi\/","name":"PostgreSQL: \u0130ki S\u00fctunun Benzersiz Kombinasyonlar\u0131n\u0131n Say\u0131m\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-07-06T18:15:20+00:00","description":"Hi\u00e7bir etiketi bulunamad\u0131.","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/postgresql-iki-sutunun-benzersiz-kombinasyonlarinin-sayimi\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/postgresql-iki-sutunun-benzersiz-kombinasyonlarinin-sayimi\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/postgresql-iki-sutunun-benzersiz-kombinasyonlarinin-sayimi\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"PostgreSQL: \u0130ki S\u00fctunun Benzersiz Kombinasyonlar\u0131n\u0131n Say\u0131m\u0131"}]},{"@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\/25464","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=25464"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/25464\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=25464"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=25464"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=25464"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}