Aracılığıyla paylaş


COMPUTE (Transact-SQL)

Sonuç kümesinin sonunda ek Özet sütunlar, görüntülenen toplamları oluşturur.BY ile kullanıldığında, COMPUTE yan tümce denetim sonları ve alt toplamları sonucu üretir küme.BY COMPUTE ve aynı sorguda COMPUTE belirtebilirsiniz.

Important noteImportant Note:

This feature will be removed in the next version of Microsoft SQL Server. Do not use this feature in new development work, and modify applications that currently use this feature as soon as possible. Bunun yerine, ROLLUP kullanın.Daha fazla bilgi için bkz:Transact-SQL () GRUBU.

Topic link iconTransact-SQL sözdizimi kuralları


[ COMPUTE 
    { { AVG | COUNT | MAX | MIN | STDEV | STDEVP | VAR | VARP | SUM } 
    ( expression ) } [ ,...n ] 
    [ BY expression [ ,...n ] ] 
]

Bağımsız değişkenler

  • ORT | SAYISI | EN ÇOK | EN AZ | stdev | STDSAPMAS | var | VARS | TOPLAMI
    Toplama, gerçekleştirilecek belirtir.Bu satır toplamak işlevleri ile COMPUTE kullanılan yan tümce.

    Satır toplamak işlev

    Sonuç

    AVG

    Değerleri, ortalama sayısal ifade

    COUNT

    Seçili satır sayısı

    MAX

    En yüksek değer ifade

    MIN

    En düşük değer ifade

    STDEV

    Istatistiksel standart sapmayı, tüm değerleri ifade

    STDEVP

    Değerleri tüm popülasyon için istatistiksel standart sapmasını ifade

    SUM

    Sayısal değerleri toplam ifade

    VAR

    Tüm değerlerin istatistiksel varyansını ifade

    VARP

    Istatistiksel ifadedeki tüm değerlerin popülasyon varyansını

    COUNT(*) için eşdeğer yoktur.GROUP BY ve COUNT(*) tarafından üretilen özet bilgi için , bir COMPUTE yan tümce BY olmadan kullanın.

    Bu işlevler, null değerleri yoksayar.

    DISTINCT anahtar sözcüğü ile COMPUTE belirtildiğinde satır toplamak işlevleriyle izin verilmiyor yan tümce.

    Eklediğinizde veya tamsayı veri için ortalama SQL Server Database Engine Sonuç işler bir int değer, sütunun veri türü bile smallint veya tinyint. Eklenen veya ortalama veri dönüş türleri hakkında daha fazla bilgi için bkz: SUM (Transact-SQL) ve AVG (Transact-SQL).

    Not

    ODBC ve DB Kitaplığı programlarındaki taşma hataları olasılığını azaltmak için , sonuçlar Ortalamalar için tüm değişken bildirimlerinde yapın veya veri türü değerlerini toplar. int.

  • expression
    An Ifadeler (Transact-SQL), such as the name of a column on which the calculation is performed.expression must appear in the select list and must be specified identical to one of the expressions in the select list.Seçim listesinde belirtilen BIR sütun diğer ad ad adı içinde kullanılamaz: expression.

    Not

    ntext, text, veya image veri türleri, COMPUTE veya COMPUTE BY yan tümcesinde belirtilemez.

  • BY expression
    Generates control-breaks and subtotals in the result set.expression is an identical copy of an order_by_expression in the associated ORDER BY clause.Genellikle, bir sütun adı veya bir sütun diğer ad ad adı budur.Birden çok ifadeler belirtilebilir.Alt gruplar bir grup keser ve uygulanan BY sonra birden çok ifadeleri listeleyen toplamak işlevi her gruplandırma düzeyine.

    Ayrıca, COMPUTE BY kullanıyorsanız kullanmalısınız bir TARAFINDAN SİPARİŞ yan tümce.Ifadeler aynı ya da alt küme küme küme kümesini ORDER BY sonra listelenen olmalı ve aynı sırada olmalıdır.Örneğin, ORDER BY yan tümce ise ORDER BY a, b, c,COMPUTE yan tümce, bir, veya, aşağıdakilerden biri olabilir:

    COMPUTE BY a, b, c
    COMPUTE BY a, b
    COMPUTE BY a
    

    Not

    Bir deyim içinde bir COMPUTE yan tümce ile birlikte, seçim listesinde sütunların sırasını, COMPUTE yan tümce bir toplamak fonksiyonlarında sırasını geçersiz kılar.ODBC ve DB Kitaplığı programcılar, toplamak işlevinin sonuçlar doğru yere koymak için bu sipariş gereksinim hakkında bilmeniz gerekir.

COMPUTE COMPUTE içeren ifadeleri tabloları üretmek ve Özet sonuçlar veritabanında depolanan bir SELECT INTO deyimini kullanamazsınız.Bu nedenle, COMPUTE tarafından üretilen herhangi bir hesaplama SELECT INTO deyim ile oluşturulan yeni tablosunda görünmüyor.

deyim BILDIRMEK imleç ifadesinin bir parçası olduğunda, COMPUTE yan tümce kullanamazsınız.

Örnekler

C.COMPUTE sorguda toplamları dönmek için kullanma.

Aşağıdaki örnekte, SELECT Basit bir deyim kullanır COMPUTE genel toplamı Toplam üretmek için yan tümce SubTotal ve TotalDue gelen SalesOrderHeader TABLO.

USE AdventureWorks;
GO
SELECT CustomerID, OrderDate, SubTotal, TotalDue
FROM Sales.SalesOrderHeader
WHERE SalesPersonID = 35
ORDER BY OrderDate 
COMPUTE SUM(SubTotal), SUM(TotalDue);

b.COMPUTE sorguda toplamları dönmek için kullanma.

Aşağıdaki örnekte, SELECT deyim kullanan bir COMPUTE Satışçı toplamının başına toplamları üretmek için yan tümce SubTotal ve TotalDue gelen SalesOrderHeader TABLO.

USE AdventureWorks;
GO
SELECT SalesPersonID, CustomerID, OrderDate, SubTotal, TotalDue
FROM Sales.SalesOrderHeader
ORDER BY SalesPersonID, OrderDate 
COMPUTE SUM(SubTotal), SUM(TotalDue) BY SalesPersonID;