Koşullu sql toplamı. SQL toplama işlevleri - SUM, MIN, MAX, AVG, COUNT. Parametreler veya Bağımsız Değişkenler

Belirli bir tedarikçinin ürettiği bilgisayar modellerinin sayısını nasıl öğrenebilirim? Aynı özelliklere sahip bilgisayarların ortalama fiyatı nasıl belirlenir? özellikler? Bazı istatistiksel bilgilerle ilgili bu ve diğer birçok soru, kullanılarak cevaplanabilir. son (toplam) işlevler. Standart aşağıdaki toplu işlevleri sağlar:

Tüm bu işlevler tek bir değer döndürür. Aynı zamanda işlevler SAYIM, DAK Ve MAKS herhangi bir veri türüne uygulanabilir, ancak TOPLA Ve AVG yalnızca sayısal alanlar için kullanılır. İşlev arasındaki fark SAYMAK(*) Ve SAYMAK(<имя поля>) ikincisi ise hesaplama yaparken NULL değerlerini hesaba katmıyor.

Örnek. Kişisel bilgisayarlar için minimum ve maksimum fiyatı bulun:

Örnek. Üretici A tarafından üretilen mevcut bilgisayar sayısını bulun:

Örnek. A üreticisinin ürettiği farklı modellerin sayısıyla ilgileniyorsak sorgu aşağıdaki gibi formüle edilebilir (Ürün tablosunda her modelin bir kez kaydedildiği gerçeğini kullanarak):

Örnek. Üretici A tarafından üretilen mevcut farklı modellerin sayısını bulun. Sorgu, üretici A tarafından üretilen toplam model sayısını belirlemenin gerekli olduğu önceki sorguya benzer. Burada ayrıca farklı modellerin sayısını da bulmanız gerekir. PC masası (yani satışa sunulanlar).

İstatistiksel göstergelerin elde edilmesinde yalnızca benzersiz değerlerin kullanılmasını sağlamak için toplam fonksiyonların argümanı kullanılabilir DISTINCT parametresi. Bir diğer parametre TÜMÜ varsayılandır ve sütunda döndürülen tüm değerlerin sayıldığını varsayar. Şebeke,

Üretilen PC modellerinin sayısını almamız gerekirse herkesüreticiyi kullanmanız gerekecek GROUP BY deyimi, sözdizimsel olarak aşağıdaki WHERE cümleleri.

GROUP BY deyimi

GROUP BY deyimi uygulanabilecek çıktı satırı gruplarını tanımlamak için kullanılır. toplama işlevleri (COUNT, MIN, MAX, AVG ve SUM). Bu madde eksikse ve toplama işlevleri kullanılıyorsa, bu durumda adı geçen tüm sütunlar SEÇME, dahil edilmelidir toplama işlevleri ve bu işlevler, sorgu yüklemini karşılayan tüm satır kümesine uygulanacaktır. Aksi halde SELECT listesinin tüm sütunları dahil değil toplu olarak işlevler belirtilmelidir GROUP BY yan tümcesinde. Sonuç olarak, tüm çıktı sorgusu satırları, bu sütunlardaki aynı değer kombinasyonlarıyla karakterize edilen gruplara ayrılır. Bundan sonra, toplama fonksiyonları her gruba uygulanacaktır. GROUP BY için tüm NULL değerlerinin eşit olarak değerlendirildiğini lütfen unutmayın; NULL değerleri içeren bir alana göre gruplandırma yapıldığında bu tür satırların tümü tek bir gruba düşecektir.
Eğer GROUP BY yan tümcesi varsa SELECT yan tümcesinde toplama işlevi yok, ardından sorgu her gruptan yalnızca bir satır döndürecektir. Bu özellik, DISTINCT anahtar sözcüğüyle birlikte bir sonuç kümesindeki yinelenen satırları ortadan kaldırmak için kullanılabilir.
Basit bir örneğe bakalım:
Modeli SEÇİN, COUNT(model) AS Qty_model, AVG(price) AS Ort_price
PC'DEN
GRUPLAMA modeline göre;

Bu talepte her PC modeli için adet ve ortalama maliyet belirlenir. Aynı model değerine sahip tüm satırlar bir grup oluşturur ve SELECT çıktısı, her grup için değer sayısını ve ortalama fiyat değerlerini hesaplar. Sorgunun sonucu aşağıdaki tablo olacaktır:
modeli Adet_model Avg_price
1121 3 850.0
1232 4 425.0
1233 3 843.33333333333337
1260 1 350.0

SELECT'in bir tarih sütunu olsaydı, bu göstergeleri her belirli tarih için hesaplamak mümkün olurdu. Bunu yapmak için, gruplandırma sütunu olarak tarih eklemeniz gerekir ve ardından her bir değer kombinasyonu (model-tarih) için toplam işlevler hesaplanır.

Birkaç spesifik var toplu işlevleri gerçekleştirme kuralları:

  • Eğer talep sonucunda satır alınmadı(veya belirli bir grup için birden fazla satır) varsa, toplama işlevlerinin herhangi birinin hesaplanmasına yönelik kaynak veri yoktur. Bu durumda COUNT fonksiyonlarının sonucu sıfır, diğer tüm fonksiyonların sonucu ise NULL olacaktır.
  • Argüman toplama işlevi kendisi toplu işlevler içeremez(işlevden işlev). Onlar. Örneğin tek bir sorguda maksimum ortalama değerleri elde etmek imkansızdır.
  • COUNT işlevinin yürütülmesinin sonucu: tamsayı(TAM SAYI). Diğer toplama işlevleri, işledikleri değerlerin veri türlerini devralır.
  • SUM işlevi, kullanılan veri türünün maksimum değerinden daha büyük bir sonuç üretirse, hata.

Yani eğer istek şunları içermiyorsa GROUP BY cümleleri, O toplama işlevleri dahil SELECT yan tümcesi, sonuçta ortaya çıkan tüm sorgu satırlarında yürütülür. Talep şunları içeriyorsa GROUP BY deyimi, belirtilen bir sütun veya sütun grubuyla aynı değerlere sahip olan her satır kümesi GROUP BY deyimi, bir grup oluşturur ve toplama işlevleri her grup için ayrı ayrı yapılır.

Teklif var

Eğer WHERE yan tümcesi satırları filtrelemek için bir yüklem tanımlar, ardından Teklif var geçerlidir gruplandırmadan sonra grupları değerlere göre filtreleyen benzer bir yüklemi tanımlamak için toplama işlevleri. Bu madde kullanılarak elde edilen değerleri doğrulamak için gereklidir. toplama işlevi içinde tanımlanan kayıt kaynağının ayrı satırlarından değil FROM yan tümcesi ve itibaren bu tür çizgilerin grupları. Bu nedenle böyle bir çek içerilemez. WHERE yan tümcesi.

SQL dilindeki SUM işlevi, basitliğine rağmen, bir veritabanıyla çalışırken oldukça sık kullanılır. Onun yardımıyla, yardımcı DBMS araçlarının yardımına başvurmadan bazı ara veya nihai sonuçların elde edilmesi uygundur.

İşlev Sözdizimi

Çoğunlukta SQL dilleri toplamın sözdizimi aynıdır - yalnızca alanın adı veya bunlardan birkaçının bazı aritmetik işlemleri, üzerinde toplamın gerekli olduğu bir argüman olarak kullanılır.

İstisnai durumlarda, belirli bir değerin sayı veya değişken olarak iletilmesi mümkündür, ancak bu tür "şemalar" fazla değer taşımadıkları için pratikte kullanılmaz. SQL'deki işlevin sözdizimi aşağıdadır:

toplam(a) - burada a parametresi olarak bazı sayısal değerler veya ifadeler kullanılır

Parametreden önce, sırasıyla yalnızca benzersiz veya tüm değerleri alacak olan DISTINCT veya ALL gibi anahtar kelimeleri ayarlayabileceğinizi belirtmekte fayda var.

SQL'de SUM kullanma örneği

Fonksiyonun nasıl çalıştığını tam olarak anlamak için birkaç örneği dikkate almakta fayda var. SQL'de SUM, hem dönüş sonucu olarak hem de örneğin bir koşulu test etmek için ara değer olarak kullanılabilir.

İlk durumda, yapılan satın alma sayısının çoğul olabileceğini dikkate alarak, her ürün için satış tutarını iade etmeniz gerektiğinde seçeneği düşünün. Sonucu elde etmek için aşağıdaki sorguyu çalıştırmanız yeterli olacaktır:

Satış Grubundan Ürün SEÇİN, toplam(Satın Alma Tutarı) Ürüne Göre;

Cevap olarak bu komut her biri için toplam satın alma tutarını içeren benzersiz bir ürün listesi olacaktır.

İkinci örnek için, satış tutarı belirli bir değeri (örneğin 100) aşan ürünlerin bir listesini almanız gerekir. Bu görevin sonucunu, en uygun olanı bir isteği yürütmek olan birkaç yolla alabilirsiniz:

ÜRÜN SEÇİN (Ürün SEÇİN, toplam(Satın Alma Tutarı) Satıştan Tutar olarak) NEREDE Toplam > 100.

SQL - Ders 11. Toplam işlevler, hesaplanan sütunlar ve görünümler

Toplam işlevlere aynı zamanda istatistiksel, toplama veya toplam işlevleri de denir. Bu işlevler, tek bir değeri saymak ve döndürmek için bir dizi diziyi işler. Bu tür yalnızca beş işlev vardır:
  • AVG() İşlevi bir sütunun ortalama değerini döndürür.

  • COUNT() Fonksiyonu bir sütundaki satır sayısını döndürür.

  • MAX() Fonksiyonu bir sütundaki en büyük değeri döndürür.

  • MIN() Fonksiyonu sütundaki en küçük değeri döndürür.

  • SUM() İşlev, sütun değerlerinin toplamını döndürür.

Bunlardan biriyle - COUNT() - 8. derste zaten tanışmıştık. Şimdi diğerleriyle tanışalım. Diyelim ki mağazamızdaki kitapların minimum, maksimum ve ortalama fiyatlarını öğrenmek istedik. Daha sonra fiyat tablosundan fiyat sütunu için minimum, maksimum ve ortalama değerleri almanız gerekir. Talep basit:

Fiyatlardan MIN(fiyat), MAX(fiyat), AVG(fiyat) SEÇİN;

Şimdi malların bize "House of Printing" tedarikçisi (id=2) tarafından ne kadar getirildiğini öğrenmek istiyoruz. Böyle bir talepte bulunmak o kadar kolay değil. Nasıl oluşturulacağını düşünelim:

1. İlk olarak, Sarf Malzemeleri (gelen) tablosundan, "Baskı Evi" tedarikçisi (id=2) tarafından gerçekleştirilen teslimatların tanımlayıcılarını (id_incoming) seçin:

2. Şimdi Tedarik Günlüğü tablosundan (magazine_incoming), 1. maddede bulunan teslimatlarda gerçekleştirilen malları (id_product) ve bunların miktarlarını (miktar) seçmeniz gerekir. Yani, 1. noktadan gelen sorgu iç içe geçmiş hale gelir:

3. Şimdi, Fiyatlar tablosunda saklanan bulunan ürünlerin fiyatlarını sonuç tablosuna eklememiz gerekiyor. Yani Supply Magazine (magazine_incoming) ve Fiyatlar tablolarına id_product sütununu kullanarak katılmamız gerekecek:

4. Sonuçta ortaya çıkan tabloda Tutar sütunu açıkça eksiktir; yani hesaplanan sütun. Bu tür sütunları oluşturma yeteneği MySQL'de sağlanmıştır. Bunu yapmak için, sorguda hesaplanan sütunun adını ve neyi hesaplaması gerektiğini belirtmeniz yeterlidir. Örneğimizde böyle bir sütuna summa adı verilecek ve miktar ile fiyat sütunlarının çarpımını hesaplayacaktır. Yeni sütunun adı AS kelimesiyle ayrılmıştır:

magazin_gelen.id_product, magazin_gelen.miktar, fiyatlar.fiyat, magazin_gelen.miktar*fiyatlar.fiyat AS summa FROM magazin_incoming, fiyatlar WHERE magazin_incoming.id_product=fiyatlar.id_product VE id_incoming= SEÇİN (gelen WHERE id_vendor=2'DEN id_incoming SEÇİN);

5. Harika, tek yapmamız gereken toplam sütununu toplamak ve sonunda "House of Printing" tedarikçisinin bize malları ne kadara getirdiğini öğrenmek. SUM() işlevini kullanmanın sözdizimi aşağıdaki gibidir:

tablo_adı'ndan SUM(sütun_adı) SEÇİN;

Sütunun adını biliyoruz - summa, ancak tablonun adı bir sorgunun sonucu olduğu için elimizde yok. Ne yapalım? Bu gibi durumlar için MySQL'in Görünümleri vardır. Görünüm, benzersiz bir ad verilen ve daha sonra kullanılmak üzere bir veritabanında saklanabilen bir seçim sorgusudur.

Görünüm oluşturma sözdizimi aşağıdaki gibidir:

CREATE VIEW view_name AS isteği;

İsteğimizi report_vendor adında bir görünüm olarak kaydedelim:

report_vendor OLARAK SELECT Magazine_incoming.id_product, magazin_gelen.miktar, fiyatlar.price, magazin_incoming.quantity*prices.price AS summa FROM magazin_incoming, fiyatlar WHERE magazin_incoming.id_product=fiyatlar.id_product VE id_incoming= (id_incoming FROM incoming WHERE id_vendor=2 SEÇİN) report_vendor OLUŞTURUN );

6. Artık SUM() son fonksiyonunu kullanabilirsiniz:

report_vendor'dan SUM(summa) SEÇİN;

Böylece sonuca ulaştık, ancak bunun için iç içe sorgular, birleştirmeler, hesaplanmış sütunlar ve görünümler kullanmak zorunda kaldık. Evet bazen bir sonuç almak için düşünmeniz gerekir, bu olmadan hiçbir yere varamazsınız. Ancak çok önemli iki konuya değindik: hesaplanmış sütunlar ve görünümler. Onlar hakkında daha detaylı konuşalım.

Hesaplanan alanlar (sütunlar)

Bir örnek kullanarak bugün matematiksel olarak hesaplanan bir alana baktık. Burada sadece çarpma işlemini (*) değil, çıkarma (-), toplama (+) ve bölmeyi (/) de kullanabileceğinizi eklemek isterim. Sözdizimi aşağıdaki gibidir:

tablo_adı'ndan hesaplanan_sütun_adı OLARAK sütun_adı 1, sütun_adı 2, sütun_adı 1 * sütun_adı 2'yi SEÇİN;

İkinci nüans AS anahtar kelimesidir, onu hesaplanan sütunun adını ayarlamak için kullandık. Aslında bu anahtar kelime herhangi bir sütuna takma ad ayarlamak için kullanılır. Bu neden gerekli? Kod azaltma ve okunabilirlik için. Örneğin görünümümüz şöyle görünebilir:

GÖRÜNÜM OLUŞTUR report_vendor AS SELECT A.id_product, A.quantity, B.price, A.quantity*B.price AS summa FROM magazin_incoming AS A, fiyatlar B OLARAK WHERE A.id_product= B.id_product AND id_incoming= (SELECT id_incoming FROM incoming) WHERE id_vendor=2);

Bunun çok daha kısa ve net olduğunu kabul edin.

Temsil

Görünüm oluşturma sözdizimine zaten baktık. Görünümler oluşturulduktan sonra tablolarla aynı şekilde kullanılabilirler. Yani, bunlara karşı sorgular çalıştırın, verileri filtreleyin ve sıralayın ve bazı görünümleri diğerleriyle birleştirin. Bir yandan bu, sık kullanılanları saklamanın çok uygun bir yoludur. karmaşık sorgular(örneğimizde olduğu gibi).

Ancak görünümlerin tablo olmadığını, yani verileri depolamadıklarını, yalnızca diğer tablolardan aldıklarını unutmayın. Dolayısıyla öncelikle tablolardaki veriler değiştiğinde sunum sonuçları da değişecektir. İkincisi, bir görünüme istek yapıldığında gerekli veriler aranır, yani DBMS'nin performansı düşer. Bu nedenle onları kötüye kullanmamalısınız.

Şöyle ders kitabı nasıl kullanılacağını öğreneceksiniz TOPLA işlevi V SQL Server(Transact-SQL) sözdizimi ve örneklerle.

Tanım

SQL Server'da (Transact-SQL) TOPLA işlevi bir ifadenin toplam değerini döndürür.

Sözdizimi

SQL Server'daki (Transact-SQL) SUM işlevinin sözdizimi şöyledir:

VEYA sonuçları bir veya daha fazla sütuna göre gruplandırırken TOPLA işlevinin sözdizimi şöyledir:

Parametreler veya Bağımsız Değişkenler

ifade1 , ifade2 , ... ifade_n, SUM işlevine dahil olmayan ifadelerdir ve SQL ifadesinin sonundaki GROUP BY yan tümcesine dahil edilmesi gerekir.
toplama_ifadesi toplanacak sütun veya ifadedir.
tablolar - kayıt almak istediğiniz tablolar. FROM yan tümcesinde listelenen en az bir tablo olmalıdır.
WHERE koşulları - isteğe bağlı. Bunlar seçilen kayıtlar için sağlanması gereken koşullardır.

Başvuru

SUM işlevi aşağıdaki SQL Server sürümlerinde (Transact-SQL) kullanılabilir:
SQL Server vNext, SQL Server 2016, SQL Server 2015, SQL Server 2014, SQL Server 2012, SQL Server 2008 R2, SQL Server 2008, SQL Server 2005

Tek alanlı örnek

SUM işlevinin SQL Server'da (Transact-SQL) nasıl kullanılacağını anlamak için bazı SQL Server SUM işlevi örneklerine bakalım.

Örneğin adedi 10'dan büyük olan tüm ürünlerin toplam adedini öğrenebilirsiniz.

SUM işlevinin bu örneğinde, SUM(miktar) ifadesini "Toplam Miktar" olarak adlandırdık. Bir sonuç kümesi döndürüldüğünde alan adı olarak "Toplam Miktar" görünecektir.

DISTINCT kullanımına örnek

SUM işlevinde DISTINCT operatörünü kullanabilirsiniz. Mesela aşağıdaki SQL ifadesi maaşın yıllık 29.000 ABD dolarının altında olduğu benzersiz maaş değerleriyle toplam maaşı döndürür.

Eğer iki maaş yıllık 24.000$ olsaydı, SUM işlevinde bu değerlerden yalnızca biri kullanılırdı.

Formülün kullanımına örnek

SUM işlevinde yer alan ifadenin tek bir alan olması gerekmez. Formülü de kullanabilirsiniz. Örneğin toplam komisyonu hesaplayabilirsiniz.

Transact-SQL

Siparişlerden SUM(satış * 0,03)'u "Toplam Komisyon" OLARAK SEÇİN;

TOPLAM (satış * 0,03)'U "Toplam Komisyon" OLARAK SEÇİN

SİPARİŞLERDEN;

GROUP BY kullanımına örnek

Bazı durumlarda, SUM işleviyle birlikte GROUP BY operatörünü kullanmanız gerekecektir.

Özetlemeyi öğrenelim. Hayır, bunlar SQL çalışmasının sonuçları değil, veritabanı tablolarının sütunlarının değerlerinin sonuçlarıdır. SQL toplama işlevleri, tek bir sonuç değeri üretmek için bir sütunun değerleri üzerinde çalışır. En sık kullanılan SQL toplama işlevleri SUM, MIN, MAX, AVG ve COUNT'tur. Toplama işlevlerini kullanmanın iki durumunu birbirinden ayırmak gerekir. İlk olarak, toplama işlevleri kendi başlarına kullanılır ve tek bir sonuç değeri döndürür. İkinci olarak, toplama işlevleri SQL GROUP BY deyimiyle birlikte kullanılır, yani her grupta ortaya çıkan değerleri elde etmek için alanlara (sütunlara) göre gruplama yapılır. İlk önce toplama işlevlerini gruplandırmadan kullanma durumlarını ele alalım.

SQL TOPLAM işlevi

SQL SUM işlevi, bir veritabanı tablosu sütunundaki değerlerin toplamını döndürür. Yalnızca değerleri sayı olan sütunlara uygulanabilir. SQL sorguları ortaya çıkan toplamın şu şekilde başlamasını sağlamak için:

TOPLAM (COLUMN_NAME) SEÇİN...

Bu ifadenin ardından FROM (TABLE_NAME) gelir ve ardından WHERE yan tümcesi kullanılarak bir koşul belirtilebilir. Ek olarak, sütun adının önüne DISTINCT gelebilir, bu da yalnızca benzersiz değerlerin sayılacağı anlamına gelir. Varsayılan olarak, tüm değerler dikkate alınır (bunun için özellikle DISTINCT değil ALL belirtebilirsiniz, ancak ALL kelimesi gerekli değildir).

Bu dersteki veritabanı sorgularını MS SQL Server'da çalıştırmak istiyorsanız ancak bu DBMS bilgisayarınızda yüklü değilse bu bağlantıdaki talimatları kullanarak kurabilirsiniz. .

İlk önce şirket veritabanıyla çalışacağız - Şirket1. Bu veritabanını oluşturmak, tablolarını oluşturmak ve tabloları verilerle doldurmak için kullanılan komut dosyası bu bağlantıdaki dosyadadır. .

Örnek 1.Şirketin bölümleri ve çalışanları hakkında veriler içeren bir veri tabanı bulunmaktadır. Personel tablosunda ayrıca çalışanların maaşlarına ilişkin verileri içeren bir sütun bulunur. Tablodan seçim şu şekilde görünür (resmi büyütmek için farenin sol tuşuyla üzerine tıklayın):

Tüm maaşların toplamını elde etmek için aşağıdaki sorguyu kullanırız (MS SQL Server'da - önceki yapı olan USE şirket1; ile birlikte):

Personelden Toplam (Maaş) SEÇİN

Bu sorgu 287664.63 değerini döndürecektir.

Ve şimdi . Alıştırmalarda halihazırda görevleri karmaşıklaştırmaya başlıyoruz ve onları pratikte karşılaşılanlara yaklaştırıyoruz.

SQL MIN işlevi

SQL MIN işlevi aynı zamanda değerleri sayı olan sütunlar üzerinde de çalışır ve sütundaki tüm değerlerin minimumunu döndürür. Bu işlev, SUM işlevininkine benzer bir sözdizimine sahiptir.

Örnek 3. Veritabanı ve tablo örnek 1'dekiyle aynıdır.

Asgari bilgi lazım ücretler 42 numaralı departmanın çalışanları. Bunu yapmak için aşağıdaki sorguyu yazın (MS SQL Server'da - önceki yapı USE şirket1; ile birlikte):

Sorgu 10505.90 değerini döndürecektir.

Ve yeniden için egzersiz yapmak bağımsız karar . Bu ve diğer bazı alıştırmalarda yalnızca Personel tablosuna değil, aynı zamanda şirketin bölümleriyle ilgili verileri içeren Org tablosuna da ihtiyacınız olacak:


Örnek 4.Şirketin departmanları hakkındaki verileri içeren Org tablosu Personel tablosuna eklenir. Boston'da bulunan bir departmanda bir çalışanın çalıştığı minimum yıl sayısını yazdırın.

SQL MAX işlevi

SQL MAX işlevi benzer şekilde çalışır ve bir sütundaki tüm değerler arasında maksimum değeri belirlemeniz gerektiğinde kullanılan benzer bir sözdizimine sahiptir.

Örnek 5.

42 numaralı departmandaki çalışanların maksimum maaşını bulmamız gerekiyor. Bunu yapmak için aşağıdaki sorguyu yazın (MS SQL Server'da - USE şirket1; önekiyle):

Sorgu 18352.80 değerini döndürecektir.

Zamanı geldi bağımsız çözüm için alıştırmalar.

Örnek 6. Yine iki tabloyla çalışıyoruz: Personel ve Org. Departmanın adını ve Doğu departman grubuna (Bölüm) ait departmandaki bir çalışanın aldığı komisyonun maksimum değerini görüntüleyin. Kullanmak JOIN (tabloları birleştirme) .

SQL AVG işlevi

Daha önce açıklanan işlevlerin sözdizimi ile ilgili olarak belirtilenler, SQL AVG işlevi için de geçerlidir. Bu fonksiyon bir sütundaki tüm değerlerin ortalamasını döndürür.

Örnek 7. Veritabanı ve tablo önceki örneklerdekiyle aynıdır.

Diyelim ki 42 numaralı departmandaki çalışanların ortalama hizmet süresini bulmak istiyorsunuz. Bunu yapmak için aşağıdaki sorguyu yazın (MS SQL Server'da - önceki yapı USE şirketi1; ile birlikte):

Sonuç 6.33 olacak

Örnek 8. Tek bir masayla çalışıyoruz - Personel. 4 ila 6 yıllık deneyime sahip çalışanların ortalama maaşını görüntüleyin.

SQL COUNT işlevi

SQL COUNT işlevi, bir veritabanı tablosundaki kayıt sayısını döndürür. Sorguda SELECT COUNT(COLUMN_NAME) ... belirtirseniz, sonuç, sütun değerinin NULL (tanımsız) olduğu kayıtlar dikkate alınmadan kayıt sayısı olacaktır. Bağımsız değişken olarak yıldız işaretini kullanırsanız ve bir SELECT COUNT(*) ... sorgusu başlatırsanız sonuç, tablonun tüm kayıtlarının (satırlarının) sayısı olacaktır.

Örnek 9. Veritabanı ve tablo önceki örneklerdekiyle aynıdır.

Komisyon alan tüm çalışanların sayısını bilmek istiyorsunuz. İletişim sütunu değerleri NULL olmayan çalışanların sayısı aşağıdaki sorguyla döndürülecektir (MS SQL Server'da - USE şirket1; önekiyle):

Personelden COUNT (İletişim) SEÇİN

Sonuç 11 olacaktır.

Örnek 10. Veritabanı ve tablo önceki örneklerdekiyle aynıdır.

Tablodaki toplam kayıt sayısını bulmak istiyorsanız, COUNT işlevine argüman olarak yıldız işaretli bir sorgu kullanın (MS SQL Server'da - önceki yapı USE şirket1; ile):

Personelden SAYIM (*) SEÇİN

Sonuç 17 olacaktır.

Gelecek bağımsız çözüm için egzersiz bir alt sorgu kullanmanız gerekecektir.

Örnek 11. Tek bir masayla çalışıyoruz - Personel. Planlama departmanındaki (Ovalar) çalışan sayısını görüntüleyin.

SQL ile İşlevleri Birleştirin GROUP BY

Şimdi toplama işlevlerini SQL GROUP BY deyimiyle birlikte kullanmaya bakalım. SQL GROUP BY ifadesi, sonuç değerlerini bir veritabanı tablosundaki sütunlara göre gruplamak için kullanılır. Web sitesi var bu operatöre ayrı olarak ayrılmış bir ders .

"Ads Portal 1" veritabanı ile çalışacağız. Bu veritabanını oluşturmak, tablosu ve veri tablosunu doldurmak için kullanılan komut dosyası bu bağlantıdaki dosyadadır. .

Örnek 12. Yani reklam portalının bir veritabanı var. Hafta için gönderilen reklamlarla ilgili verileri içeren bir Reklamlar tablosu bulunur. Kategori sütunu, büyük reklam kategorileri (örneğin, Emlak) hakkındaki verileri içerir ve Parçalar sütunu, kategorilere dahil edilen daha küçük bölümler (örneğin, Daireler ve Yazlık Evler bölümleri, Emlak kategorisinin parçalarıdır) hakkındaki verileri içerir. Birimler sütunu, gönderilen reklamların sayısına ilişkin verileri içerir ve Para sütunu, reklamların gönderilmesi karşılığında alınan para miktarına ilişkin verileri içerir.

KategoriParçaBirimlerPara
UlaşımArabalar110 17600
EmlakDaireler89 18690
EmlakYazlıklar57 11970
UlaşımMotosikletler131 20960
İnşaat malzemeleriPanolar68 7140
Elektrik MühendisliğiTV'ler127 8255
Elektrik Mühendisliğibuzdolapları137 8905
İnşaat malzemeleriKayıtlar112 11760
Boş vakitKitabın96 6240
EmlakEvde47 9870
Boş vakitMüzik117 7605
Boş vakitOyunlar41 2665

SQL GROUP BY deyimini kullanarak her kategoride reklam yayınlayarak kazanılan para miktarını bulun. Aşağıdaki sorguyu yazıyoruz (MS SQL Server'da - önceki yapı olan USE adportal1; ile):

REKLAM GRUPTAN KATEGORİYE GÖRE Kategori, TOPLAM (Para) Para OLARAK SEÇİN

Örnek 13. Veritabanı ve tablo önceki örnekteki ile aynıdır.

SQL GROUP BY ifadesini kullanarak, her kategorinin hangi bölümünün en çok listeye sahip olduğunu öğrenin. Aşağıdaki sorguyu yazıyoruz (MS SQL Server'da - önceki yapı olan USE adportal1; ile):

Kategoriye Göre REKLAM GRUPLARINDAN Kategori, Parça, Maksimum (Birim) OLARAK SEÇİN

Sonuç aşağıdaki tablo olacaktır:

Toplam ve bireysel değerler tek tabloda elde edilebilir UNION operatörünü kullanarak sorgu sonuçlarını birleştirme .

İlişkisel Veritabanları ve SQL Dili




Tepe