Aracılığıyla paylaş


Toplu sorgularda sütunlarla çalışma (Visual Database Araçları)

Şunlar için geçerlidir: SQL Server

Toplama sorguları oluşturduğunuzda Sorgu ve Görünüm Tasarımcısı Araçları (Visual Database Araçları) geçerli bir sorgu oluşturabilmesi için bazı varsayımlarda bulunur. Örneğin, bir toplama sorgusu oluşturuyor ve çıktı için bir veri sütununu işaretlüyorsanız, Sorgu ve Görünüm Tasarımcısı sütunu yan tümcesinin GROUP BY bir parçası haline getirir, böylece istemeden tek bir satırın içeriğini bir özette görüntülemeyi denemezsiniz.

Gruplandırma Ölçütü kullan

Sorgu ve Görünüm Tasarımcısı sütunlarla çalışmak için aşağıdaki yönergeleri kullanır:

  • Gruplandır seçeneğini belirlediğinizde veya sorguya bir toplama işlevi eklediğinizde, çıkış için işaretlenmiş veya sıralama için kullanılan tüm sütunlar yan tümcesine GROUP BY otomatik olarak eklenir. Sütunlar zaten bir toplama işlevinin GROUP BY parçasıysa yan tümcesine otomatik olarak eklenmez.

    Belirli bir sütunun yan tümcenin GROUP BY parçası olmasını istemiyorsanız, Ölçüt bölmesinin Gruplandır sütununda farklı bir seçenek belirleyerek sütunu el ile değiştirmeniz gerekir. Ancak Sorgu ve Görünüm Tasarımcısı, çalışmayan bir sorguya neden olabilecek bir seçenek seçmenizi engellemez.

  • Ölçütler veya SQL bölmesindeki bir toplama işlevine el ile sorgu çıkış sütunu eklerseniz, Sorgu ve Görünüm Tasarımcısı diğer çıkış sütunlarını sorgudan otomatik olarak kaldırmaz. Bu nedenle, kalan sütunları sorgu çıkışından kaldırmanız veya yan tümcesinin GROUP BY veya bir toplama işlevinin parçası yapmanız gerekir.

Ölçütler bölmesinin Filtre sütununa bir arama koşulu girdiğinizde, Sorgu ve Görünüm Tasarımcısı şu kuralları izler:

  • Kılavuzun Gruplandır sütunu görüntülenmiyorsa (henüz toplama sorgusu belirtmediğiniz için), arama koşulu yan tümcesine WHERE yerleştirilir.

  • Zaten bir toplama sorgusundaysanız ve Gruplandır sütununda nerede seçeneğini belirlediyseniz, arama koşulu yan tümcesine WHERE yerleştirilir.

  • Gruplandırma Ölçütü sütunu Where dışında bir değer içeriyorsa, arama koşulu yan tümcesine HAVING yerleştirilir.

HAVING ve WHERE yan tümcelerini kullanma

Aşağıdaki ilkeler, arama koşullarında bir toplama sorgusundaki sütunlara nasıl başvurabileceğinizi açıklar. Genel olarak, özetlenmesi gereken satırları filtrelemek (yan tümce) veya son çıktıda (yan WHERE tümce) hangi gruplandırılmış sonuçların görüneceğini belirlemek için arama koşulundaki bir HAVING sütunu kullanabilirsiniz.

  • Tek tek veri sütunları, sorgunun WHERE başka bir yerinde nasıl kullanıldıklarına bağlı olarak veya HAVING yan tümcesinde görünebilir.

  • WHERE yan tümceleri özetleme ve gruplandırma için satırların bir alt kümesini seçmek için kullanılır ve bu nedenle herhangi bir gruplandırma yapılmadan önce uygulanır. Bu nedenle, yan tümcenin parçası GROUP BY olmasa veya bir toplama işlevinde WHERE yer almasa bile yan tümcesinde veri sütunu kullanabilirsiniz. Örneğin, aşağıdaki deyim 10,00 TL'den daha pahalı olan tüm başlıkları seçer ve fiyatın ortalamasını alır:

    SELECT AVG(price)
    FROM titles
    WHERE price > 10;
    
  • Yan tümcesinde veya toplama işlevinde de kullanılan bir sütunu içeren bir GROUP BY arama koşulu oluşturursanız, arama koşulu yan WHERE tümce veya HAVING yan tümce olarak görünebilir; koşulu oluşturduğunuzda hangisinin olduğuna karar vekleyebilirsiniz. Örneğin, aşağıdaki deyim her yayımcı için başlıklar için ortalama bir fiyat oluşturur ve ardından ortalama fiyatın 10,00 TL'den büyük olduğu yayımcıların ortalamasını görüntüler:

    SELECT pub_id,
           AVG(price)
    FROM titles
    GROUP BY pub_id
    HAVING (AVG(price) > 10);
    
  • Bir arama koşulunda toplama işlevi kullanırsanız, koşul bir özet içerir ve bu nedenle yan tümcesinin HAVING bir parçası olmalıdır.