Pivot tablosu (İngilizce: pivot table), bir veritabanı, hesap tablosu ya da iş zekâsı programı gibi kaynaklardaki daha geniş bir veri kümesini özetleyen istatistiksel bir tablodur. Bu özet, verileri anlamlı biçimde gruplayan toplamları, ortalamaları ya da başka istatistikleri içerebilir.
Pivot tabloları, büyük ve karmaşık veri kümelerinden anlamlı örüntülerin hızla çıkarılmasını sağlayan bir veri analizi yöntemidir. Satır, sütun ve değer alanları esnek biçimde yapılandırılabildiği için aynı veri kümesi farklı açılardan incelenebilir.
Pivot tablosu genel bir terim olmasına karşın Microsoft, PivotTable adını 1994 yılında Amerika Birleşik Devletleri'nde ticari marka olarak tescil ettirmiştir.
Bill Jelen ve Mike Alexander, Pivot Table Data Crunching (Pivot tablosuyla veri işleme) adlı kitaplarında Pito Salas'ı "pivot tablolarının babası" olarak anar. Salas, sonradan Lotus Improv adıyla piyasaya çıkacak yeni bir programın kavram tasarımı üzerinde çalışırken hesap tablolarındaki verilerin belirli kalıplar (örüntüler) taşıdığını fark etmiştir. Ona göre kullanıcının bu kalıpları tanımasına yardım eden bir araç, gelişmiş veri modellerinin hızla kurulmasını da kolaylaştıracaktı. Improv'da kullanıcılar kategori kümeleri tanımlayıp saklayabiliyor, ardından kategori adlarını fareyle sürükleyerek tablonun görünümünü değiştirebiliyordu. Bu temel işlev, sonraki pivot tablolarına örnek olmuştur.
Lotus Development, Improv'u 1991 yılında NeXT platformu için piyasaya sürmüştür. Lotus Improv'un çıkışının ardından Brio Technology, aynı yıl DataPivot adlı bağımsız bir Macintosh uygulaması geliştirmiştir; bu uygulamanın teknolojisi 1999 yılında patentlenmiştir. MacUser dergisi Temmuz 1991'de DataPivot'u, veri ilişkilerine bakış açısını değiştirmeye ve hızla yeni raporlar biçimlendirmeye yarayan, Improv benzeri bir veri düzenleme aracı olarak duyurmuştur. Dergi daha sonra DataPivot 1.0'ı 1991 yılının en iyi veri yönetimi ürünü seçmiştir. Dergi bu aracı, masaüstündeki bir hesap tablosundan uzaktaki bir ana bilgisayar veritabanına kadar her kaynaktan veri alan, ne hesap tablosuna ne de veritabanına bağlı olan bir ön uç raporlama aracı olarak nitelemiştir.
Brio Technology adına 24 Aralık 1996'da yapılan başvuru üzerine 22 Haziran 1999'da verilen ABD patenti (US5915257), buluşu yapanlar olarak Daniel L. Gartung, Yorgen H. Edholm, Kay-Martin Edholm, Kristen N. McNall ve Karl M. Lew'i gösterir. Patentin arka plan bölümü, verileri ve raporları yeniden yapılandırma yeteneğinin öncüsü olarak DataPivot adlı bir hesap tablosu eklentisini anar. Patentte anlatılan yöntem, kaynak kayıtlardan elde edilen özet değerleri bir ağaç yapısında saklar. Kullanıcı rapor etiketlerinin yerini değiştirdiğinde ağacın düzeyleri yeniden sıralanır; böylece rapor, kaynak kayıtlara yeniden erişilmeden yeni düzende üretilebilir.
Borland da kendi hesap tablosu yazılımı Quattro Pro için bir pivot aracı geliştirmiştir. Borland'ın Improv'un Windows sürümüne yanıt olarak geliştirdiği Data Modeling Desktop, Quattro Pro for Windows'un içinden başlatılan ayrı bir Windows uygulamasıydı. Kullanıcı bu araçla hesap tablosu verilerini çapraz tablo raporuna dönüştürebiliyor, satır ve sütun başlıklarını fareyle sürükleyerek tabloyu döndürebiliyordu. Tablodaki sayısal değerler varsayılan olarak toplanıyor, kullanıcı ortalama, sayım ve yüzde gibi başka hesaplamalar da seçebiliyordu. PC Magazine Eylül 1993'te aracın Quattro Pro for Windows'un bir sonraki sürümüyle birlikte dağıtılacağını bildirmiştir.
Improv'un Microsoft Windows sürümü 1993 yılında çıkmıştır. PC Magazine dergisinin bildirdiğine göre Lotus, Improv for Windows'un 2.0 sürümünü Şubat 1993'te piyasaya sürmüş, birkaç ay sonra çıkan 2.1 sürümüne dış veritabanlarından veri sorgulayıp Improv'a aktarma olanağı eklemiştir. 1994'ün başlarında Microsoft Excel 5 "PivotTable" adlı yeni bir özellikle piyasaya çıkmıştır. Microsoft bu özelliği Excel'in sonraki sürümlerinde geliştirmeyi sürdürmüştür:
Oracle Corporation, 2007 yılında PIVOT ve UNPIVOT operatörlerini Oracle Database 11g sürümüyle kullanıma sunmuştur.
Veri girişinde ve saklanmasında veriler genellikle düz tablolarda tutulur. Bu tür tablolar yalnızca sütunlardan ve satırlardan oluşur. Gömlek türlerine ilişkin verileri gösteren hesap tablosu kesiti, bu tür düz tablolara bir örnektir:
Bu tür tablolar çok sayıda veri öğesi içerebilir, ancak onlardan özet bilgi elde etmek zor olabilir. Pivot tablosu, verileri hızla özetlemeye ve istenen bilgiyi öne çıkarmaya yardım eder. Pivot tablosunun kullanım alanı son derece geniştir ve amaca göre değişir; bu nedenle tablo oluşturulmadan önce analizin hedefi belirlenmelidir. Örneğin belirli bir sevk tarihinde her bölgede satılan birim sayısı bu yöntemle kolayca özetlenebilir:
Bir pivot tablosu genellikle satır, sütun ve veri (ya da olgu) alanlarından oluşur. Bu örnekte sütun alanı Sevk Tarihi, satır alanı Bölge, görülmek istenen veri ise Birim sayılarının toplamıdır. Bu alanlar toplam, ortalama, standart sapma, sayım gibi çeşitli birleştirme işlemlerine olanak verir. Örnekte gönderilen toplam birim sayısı, toplam birleştirmesiyle elde edilmiştir.
Microsoft Excel'de pivot tablosu kaynak verinin kendisi üzerinde değil, onun bir kopyası üzerinde çalışır. Jelen ve Alexander'a göre Excel, pivot tablosu oluştururken veri kümesinin anlık bir görüntüsünü alır ve onu pivot önbelleği adı verilen, kaynak verinin hızlı erişim için çoğaltıldığı özel bir bellek alt sisteminde saklar. Bu nedenle kaynak veriye yeni kayıtlar eklendiğinde, o veriye dayanan pivot tablolarının yenilenmesi gerekir. Microsoft, kaynak verinin, her sütunu tek satırlık, benzersiz ve boş olmayan bir başlık taşıyan, boş satır ya da sütun içermeyen bir tablo biçiminde düzenlenmesini önermektedir. Kaynak olarak bir Excel tablosu kullanıldığında, tabloya sonradan eklenen satırlar pivot tablosu yenilendiğinde kendiliğinden kapsanır.
Gömlek verileri örneğinde yazılım, önce Bölge alanının aldığı bütün farklı değerleri bulur. Bu örnekte bu değerler Kuzey, Güney, Doğu ve Batı bölgeleridir. Yazılım ardından Sevk Tarihi alanının bütün farklı değerlerini de bulur. Seçilen hesaplama yöntemine göre tablodaki birim miktarlarını özetler ve sonucu çok boyutlu bir tabloda ya da grafikte gösterir. Örnek pivot tablosundaki ilk değer 66'dır. Bu sayı, Bölge alanı Doğu ve Sevk Tarihi alanı 1/31/2005 (31 Ocak 2005) olan bütün kayıtlar bulunup bu kayıtların Birim değerleri (E2 ile E7 arasındaki hücreler) toplanarak elde edilmiştir.
Pivot tabloları kendiliğinden oluşmaz, kullanıcının oluşturması gerekir. Örneğin Microsoft Excel'de pivot tablosu oluşturmak için önce veri aralığı seçilir, ardından işlem Ekle menüsünden başlatılır. Kullanıcı, pivot tablosunu var olan bir çalışma sayfasına ekleyebileceği gibi onu barındırmak için yeni bir sayfa da oluşturabilir. Bundan sonra kullanıcıya, verideki bütün sütun başlıklarını listeleyen bir pivot tablosu alan listesi sunulur. Örneğin bir şirketin satış verilerini gösteren bir tabloda satış tarihi, satış elemanı, satılan ürün, ürün rengi, satılan birim sayısı, birim fiyatı ve toplam fiyat sütunları bulunabilir. Alan listesi, bu verilere daha kolay erişilmesini sağlar.
| Satış tarihi | Satış elemanı | Satılan ürün | Ürün rengi | Satış sayısı | Birim fiyatı | Toplam fiyat |
|---|---|---|---|---|---|---|
| 10/01/13 | Jones | Not defteri | Siyah | 8 | 25000 | 200000 |
| 10/02/13 | Prince | Dizüstü | Kırmızı | 4 | 35000 | 140000 |
| 10/03/13 | George | Fare | Kırmızı | 6 | 850 | 5100 |
| 10/04/13 | Larry | Not defteri | Beyaz | 10 | 27000 | 270000 |
| 10/05/13 | Jones | Fare | Siyah | 4 | 700 | 2800 |
Oluşturulabilecek alanlar çalışma sayfasının sağ tarafında görünür. Pivot tablosunun düzen tasarımı ise varsayılan olarak bu listenin altında yer alır.
Listedeki her alan, dört bölümden oluşan bu düzene sürüklenebilir:
Rapor filtresi, pivot tablosunun tamamına uygulanacak bir ölçüt belirlemeye yarar. Örneğin Ürün rengi alanı bu bölüme atandığında tablo yalnızca seçilen renge ait verileri gösterecek biçimde süzülür. Rapor filtresinde, örnek satış tablosundaki renklere karşılık gelen Siyah, Kırmızı ve Beyaz seçenekleri açılır liste olarak sunulur. Bu listeden bir seçenek seçildiğinde (örneğin Siyah), görünen tablo yalnızca Ürün rengi = Siyah olan satırlardan gelen verileri içerir.
Sütun etiketleri, pivot tablosunda gösterilecek bir ya da daha çok sütuna filtre uygulamak için kullanılır. Örneğin Satış elemanı alanı bu bölüme sürüklenirse oluşturulan tablonun sütunları Satış elemanı sütunundaki değerlerden oluşur; başka bir deyişle tabloda satış elemanı sayısı kadar sütun olur. Verilerin toplamı da ayrı bir sütun olarak eklenir. Örnek satış tablosunda bu işlem, her satış elemanı için birer sütun ve bir Genel Toplam sütunu olmak üzere beş sütun oluşturur. Verilerin üstünde Sütun Etiketleri adlı bir filtre yer alır; bu filtreyle pivot tablosu için belirli bir satış elemanı seçilebilir ya da seçim kaldırılabilir.
Yalnızca kategorik alanlar seçildiğinde tabloda sayısal değer görünmez; sayısal bir alan eklendiğinde ise Genel Toplam satır ve sütunları kendiliğinden güncellenir.
Satır etiketleri, pivot tablosunda gösterilecek bir ya da daha çok satıra filtre uygulamak için kullanılır. Örneğin Satış elemanı alanı bu bölüme sürüklenirse oluşturulan çıktı tablosunun satırları Satış elemanı sütunundaki değerlerden oluşur; başka bir deyişle tabloda satış elemanı sayısı kadar satır olur. Bunlara ek olarak Genel Toplam başlıklı bir satır daha yer alır. Örnek satış tablosunda bu işlem, her satış elemanı için birer satır ve bir Genel Toplam satırı olmak üzere beş satır oluşturur. Verilerin üstünde Satır Etiketleri adlı bir filtre yer alır; bu filtreyle pivot tablosu için belirli bir satış elemanı seçilebilir ya da seçim kaldırılabilir.
Değerler bölümüne genellikle çeşitli hesaplamalarda kullanılabilecek sayısal değerler taşıyan bir alan konur. Metin değerleri taşıyan bir alan kullanmak da yanlış değildir; bu durumda toplam yerine öğe sayısı elde edilir. Örneğin satış tablosunda Satış sayısı alanı, Satış elemanı satır etiketiyle birlikte bu bölüme sürüklenirse tabloya, her satış elemanının sattığı ürün sayısını gösteren Satış sayısı toplamı adlı yeni bir sütun eklenir.
Excel'de değerler bölümündeki alanlar varsayılan olarak toplam biçiminde gösterilir; Excel veriyi metin olarak yorumlarsa toplam yerine sayım kullanır. Kullanıcı özetleme işlevini değiştirebileceği gibi değerleri genel toplamın yüzdesi gibi oranlar olarak da gösterebilir.
| Satır Etiketleri | Satış sayısı toplamı |
|---|---|
| Jones | 12 |
| Prince | 4 |
| George | 6 |
| Larry | 10 |
| Genel Toplam | 32 |
Pivot tabloları ya da pivot işlevi, birçok hesap tablosu uygulamasının ve bazı veritabanı yazılımlarının ayrılmaz bir parçasıdır; başka veri görselleştirme araçlarında ve iş zekâsı paketlerinde de yer almaktadır.
pivot_clause yan tümcesi, satırları sütunlara döndüren ve bu döndürme sırasında verileri toplayan çapraz tablo sorguları yazmayı sağlar; sonuç genellikle başlangıçtaki veri kümesinden daha çok sütun ve daha az satır içerir.crosstab işlevi tür belirtilmemiş bir kayıt kümesi döndürür; bu yüzden çıktı sütunlarının adları ve türleri, işlevi çağıran sorgunun FROM yan tümcesinde tanımlanmalıdır.Pivot işlemi hesap tablosu raporlarının dışında, veri işlemede tabloların biçimini değiştirmek için de kullanılır. Bir sütundaki farklı değerleri ayrı sütunlara çeviren ve bu sırada kalan değerleri toplayan işlem, tabloyu genişletir; satır sayısı azalırken sütun sayısı artar. pandas belgeleri bu iki biçimi ayırır. Her denek için tek satırın tutulduğu biçim "geniş", her denek için gerektiğinde birden çok satırın tutulduğu biçim ise "uzun" ya da "yığılmış" biçim olarak adlandırılır.
Ters işlem (İngilizce: unpivot) sütunları satırlara çevirerek tabloyu uzatır. pandas'ta bu işi melt işlevi görür; tanımlayıcı olarak seçilen sütunlar korunur, öteki bütün sütunlar "variable" ve "value" adlı iki sütunda satırlara açılır. R dilindeki tidyr paketinde pivot_longer işlevi veriyi uzatarak satır sayısını artırır, pivot_wider ise bunun tersini yapar. SQL tarafında Microsoft SQL Server ve Oracle, PIVOT işlecinin yanında UNPIVOT işlecini de sunar.
Ters pivot işlemi pivot işleminin tam tersi değildir. Microsoft'un belgelerine göre PIVOT bir toplama işlemi yaparak birden çok satırı tek satırda birleştirdiği için UNPIVOT özgün tabloyu yeniden üretemez; ayrıca UNPIVOT girdisindeki boş (NULL) değerler çıktıda yer almaz.
Excel pivot tabloları, verileri bir Excel hesap tablosundan almak yerine doğrudan bir çevrimiçi analitik işleme (İngilizce: online analytical processing, OLAP) sunucusunu sorgulayarak alabilir. Bu yapılandırmada pivot tablosu, OLAP sunucusunun basit bir istemcisi olarak çalışır. Excel'in PivotTable özelliği yalnızca Microsoft'un Analysis Services hizmetine değil, XML for Analysis (XMLA) OLAP standardıyla uyumlu her sunucuya bağlanabilir.
OLAP veritabanları bir ya da daha çok küpe ayrılır ve veriler bu küplerde tablolar yerine hiyerarşik olarak düzenlenir. Bir pivot tablosu raporunda her hiyerarşi, açılıp kapatılarak alt ya da üst düzeyleri gösteren bir alan kümesine dönüşür; örneğin bir coğrafya boyutu ülke ya da bölge, eyalet ya da il ve şehir düzeylerini, bir zaman boyutu ise yıl, çeyrek, ay ve gün düzeylerini içerebilir. Özet değerleri Excel yerine OLAP sunucusu hesapladığından rapor oluşturulurken ya da değiştirilirken Excel'e daha az veri gönderilir. Bu yapı, verilerin geleneksel bir veritabanında tutulduğu duruma göre çok daha büyük kaynak verilerle çalışmayı mümkün kılar.
OLAP kaynaklı pivot tablolarının bazı sınırları vardır. Sunucu, rapor düzeni her değiştiğinde Excel'e yeni veri döndürür. Özet değerleri sunucu önceden hesapladığı için değer alanlarının özetleme işlevi değiştirilemez, hesaplanan alan ya da hesaplanan öğe de oluşturulamaz.