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 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. |
[ 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;