compute (Transact-SQL)
sonuç kümesi, 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ı sonuç kümesioluşturur.TARAFINDAN compute ve compute aynı sorguda belirtebilirsiniz.
Önemli |
---|
Bu özellik Microsoft SQL Server'ın bir sonraki sürümünde kaldırılacaktır. Yeni geliştirme işlerinde bu özelliği kullanmayın ve bu özelliği kullanmakta olan uygulamaları mümkün olduğunca erken bir zamanda değiştirin.TOPLAMA yerine kullanın.Daha fazla bilgi için, bkz. Grup, (Transact-SQL). |
Sözdizimi
[ COMPUTE
{ { AVG | COUNT | MAX | MIN | STDEV | STDEVP | VAR | VARP | SUM }
( expression ) } [ ,...n ]
[ BY expression [ ,...n ] ]
]
Bağımsız değişkenler
AVG | COUNT | EN ÇOK | MIN | STDSAPMA | STDSAPMAS | VAR | VARS | TOPLA
Gerçekleştirilecek toplama belirtir.Bu satır toplu işlevleri ile compute yan tümcekullanılır.Satır toplu işlev
Sonuç
AVG
Sayısal ifadedeğerlerin ortalaması
COUNT
Seçili satır sayısı
MAX
En yüksek değer ifade
MIN
En düşük değer ifade
STDEV
ifadetüm değerlerin istatistiksel standart sapması
STDEVP
Tüm ifadedeğerleri popülasyon için istatistiksel standart sapması
SUM
Sayısal ifadedeğerlerin toplamı
VAR
Tüm değerleri ifadeiçin istatistiksel sapması
VARP
Tüm ifadedeğerleri popülasyon için istatistiksel sapması
count(*) için eşdeğer yoktur.Grup ve count(*) tarafından üretilen özet bilgileri bulmak için by olmadan bir compute yan tümce kullanın.
Bu işlevler null değerleri yoksayar.
compute yan tümceile birlikte belirtildiğinde DISTINCT anahtar sözcüğünü satır toplu işlevleri ile izin verilmez.
Eklediğinizde veya tamsayı veri ortalama SQL Server Veritabanı Altyapısı sonucu nitelendirir bir int değeri, sütun veri türü olsa 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 DBtaşma hataları olasılığını azaltmak için-kitaplık programları yapmak sonuçlar tüm değişken bildirimlerinde Ortalamalar, ya da veri türü toplar int.
expression
Bir Deyimler (Transact-SQL), hesaplama yapılmadan bir sütun adı gibi.expressionseçme listesinde görünmesi gerekir ve bir seçim listesi ifadelerde aynı belirtilmelidir.Select listesinde belirtilen bir sütun diğer ad içinde kullanılamaz expression.Not
ntext, text, veya image veri türleri bir compute veya compute by yan tümcetümcesinde belirtilemez.
TARAFINDANexpression
Denetim sonları ve alt toplamları sonuç kümesioluşturur.expressionözdeş kopyasını olan bir order_by_expression ilişkili order by yan tümceiçinde.Genellikle, bir sütun veya sütun diğer adadıdır.Birden çok ifadeler belirtilebilir.by bir grup alt gruplara ayırır ve her düzey gruplandırma topluişlev geçerlidir sonra birden çok ifadeler listeleme.compute by kullanırsanız, ayrıca kullanmalısınız bir order by yan tümce.İfadeleri aynı ya da bir alt küme listelenmeyen order by sonra olmalı ve aynı sırada olmalıdır.Örneğin order by yan tümce , ORDER BY a, b, c,compute yan tümce herhangi biri veya tümü, aşağıdakilerden biri olabilir:
COMPUTE BY a, b, c COMPUTE BY a, b COMPUTE BY a
Not
Bir select deyim içinde bir compute yan tümceile compute yan tümce toplu işlevlerinde sırası listesinde sütunların sırasını geçersiz kılar.odbc ve DB-Library programcılar toplu işlev sonuçlar doğru yere koymak için bu emri gereksinim hakkında bilmeniz gereken.
Çünkü deyimlerini compute de dahil tabloları oluşturmak ve Özet sonuçlar değil veritabanında depolanan select INTO deyim compute kullanamazsınız.Bu nedenle, select INTO deyimile oluşturulan yeni tablo compute tarafından üretilen tüm hesaplamalar görünmez.
select deyim BİLDİRMEK İMLEÇ deyimparçası olduğunda, compute yan tümce kullanamazsınız.
Örnekler
A.compute sorguda toplamları dönmek için kullanma
Aşağıdaki örnekte, SELECTdeyim kullanan basit bir COMPUTEtoplamının genel bir toplam üretmek içinyan tümce SubTotal ve TotalDue dan SalesOrderHeadertablo.
USE AdventureWorks2008R2;
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, SELECTdeyim kullanan bir COMPUTEtoplamının satışçı başına toplamları üretmek içinyan tümce SubTotal ve TotalDue dan SalesOrderHeadertablo.
USE AdventureWorks2008R2;
GO
SELECT SalesPersonID, CustomerID, OrderDate, SubTotal, TotalDue
FROM Sales.SalesOrderHeader
ORDER BY SalesPersonID, OrderDate
COMPUTE SUM(SubTotal), SUM(TotalDue) BY SalesPersonID;