KOMPUTEROWE (Transact-SQL)
Generuje sum, które nie są wyświetlane jako dodatkowe kolumny podsumowań na końcu zestaw wyników.Użyto z według obliczeń klauzula generuje podziały kontroli i sumy częściowe w zestaw wyników.Można określić, OBLICZYĆ za i obliczenia w tej samej kwerendy.
![]() |
---|
Ta funkcja zostanie usunięta z następnej wersji programu Microsoft SQL Server. Nie należy stosować tej funkcji w nowych projektach oraz jak najszybciej należy zmodyfikować aplikacje, w których obecnie jest używana ta funkcja.Użyj zamiast tego pakietu ZBIORCZEGO.Aby uzyskać więcej informacji, zobacz Grupowanie według języka Transact-SQL (). |
Składnia
[ COMPUTE
{ { AVG | COUNT | MAX | MIN | STDEV | STDEVP | VAR | VARP | SUM }
( expression ) } [ ,...n ]
[ BY expression [ ,...n ] ]
]
Argumenty
AVG | LICZNIK | MAX | MIN | FUNKCJA ODCH.STANDARDOWE | FUNKCJA ODCH.STANDARD.POPUL | VAR | FUNKCJA WARIANCJA.POPUL | SUMA
Określa agregacja ma być wykonana.Te funkcje wartość zagregowana wierszy są używane z obliczeń klauzula.funkcja wartość zagregowanadla wiersza
Wynik
ŚREDNIA
Średnia wartości liczbowe wyrażenie
ILENIEPUST
Liczba zaznaczonych wierszy
MAX
Najwyższa wartość wyrażenie
MIN
Najniższa wartość wyrażenie
ODCH.STANDARDOWE
Statystyczne odchylenie standardowe dla wszystkich wartości w wyrażenie
ODCH.STAND.POPUL
Statystyczne odchylenie standardowe zapełnianie wszystkich wartooci w wyrażenie
SUMA
Suma wartości liczbowe wyrażenie
WARIANCJA
Statystyczna wariancja wszystkich wartości w wyrażenie
WARIANCJA.POPUL
Statystyczną wariancję zapełnianie wszystkich wartooci w wyrażenie
Brak jest odpowiednika do COUNT(*).Aby znaleźć informacje podsumowujące, produkowane przez Grupuj według i COUNT(*), należy użyć klauzula obliczeń bez według.
Te funkcje ignorują wartości null .
Słowo kluczowe DISTINCT nie jest dozwolone z funkcji wartość zagregowana wiersza na są określone w klauzulaobliczeń.
Podczas dodawania lub średnia danych integer, Aparat baz danych programu SQL Server traktuje jako wynik int wartości, nawet jeśli typ danych kolumna jest smallint lub tinyint.Aby uzyskać więcej informacji na temat zwracanych typów danych dodane lub średnia, zobacz Suma (Transact-SQL) i AVG (Transact-SQL).
Ostrzeżenie
Aby zmniejszyć prawdopodobieństwo błędów przepełnienia w ODBC i DB-biblioteka programów wprowadzić wszystkie deklaracje zmiennych wyniki średnie lub sumuje typ danych int.
expression
Wyrażenia języka Transact-SQL), Takie jak nazwa kolumna jest obliczeń.expressionmusi znajdować się na liście wyboru i musi być podana taka sama, jak jedno z wyrażeń na liście Wybierz.kolumnaalias określonego na liście select nie mogą być używane w expression.Ostrzeżenie
ntext, text, lub image nie można określić typy danych w komputerowe lub COMPUTE BY klauzula.
PRZEZexpression
Generuje podziały kontroli i sumy częściowe w zestaw wyników.expressionjest identycznych kopii order_by_expression w skojarzonym zamówieniu klauzula.Zazwyczaj jest to nazwa kolumna lub kolumna alias.Można określić wiele wyrażeń.Wyświetlanie wielu wyrażeń po według podziały grupy do podgrup i dotyczyfunkcja wartość zagregowanana każdym poziom grupowanie.Jeśli używasz COMPUTE BY, należy również użyć ORDER BY klauzula.Wyrażenie musi być taka sama, jak lub podzbiór wymienione po ORDER BY i musi być w tej samej sekwencji.Na przykład, jeśli zamówienia według klauzula jest ORDER BY a, b, c,obliczeń klauzula może być dowolną, lub wszystkie z następujących czynności:
COMPUTE BY a, b, c COMPUTE BY a, b COMPUTE BY a
Ostrzeżenie
W SELECT instrukcja z obliczeń klauzulakolejność kolumn na liście wybierz zastępuje kolejność funkcji wartość zagregowana w klauzulaobliczeń.ODBC i DB-Biblioteka programiści muszą wiedzieć o to wymaganie zamówienia umieścićfunkcja wartość zagregowanawyniki w odpowiednie miejsce.
Nie można używać obliczeń w SELECT INTO instrukcja , ponieważ sprawozdań, łącznie z obliczeń generowania tabele i ich podsumowanie wyniki nie są przechowywane w bazie danych.W związku z tym wszelkie obliczenia produkowane przez obliczeń nie pojawiają się w nowej tabela , utworzony za pomocą SELECT INTO instrukcja.
Nie można użyć klauzula obliczeń, gdy instrukcja SELECT jest częścią instrukcjaDECLARE CURSOR.
Przykłady
A.Za pomocą obliczeń w programie Microsoft query do zwrotu sum
W poniższym przykładzie SELECT instrukcja zastosowano prostą COMPUTE klauzula do wyprodukowania sumy Suma SubTotal i TotalDue z SalesOrderHeader tabela.
USE AdventureWorks2008R2;
GO
SELECT CustomerID, OrderDate, SubTotal, TotalDue
FROM Sales.SalesOrderHeader
WHERE SalesPersonID = 35
ORDER BY OrderDate
COMPUTE SUM(SubTotal), SUM(TotalDue);
B.Za pomocą obliczeń w programie Microsoft query do zwrotu sum
W poniższym przykładzie SELECTużywainstrukcja COMPUTEklauzula do wyprodukowania sumy według sprzedawcy sumę SubTotal i TotalDue z SalesOrderHeadertabela.
USE AdventureWorks2008R2;
GO
SELECT SalesPersonID, CustomerID, OrderDate, SubTotal, TotalDue
FROM Sales.SalesOrderHeader
ORDER BY SalesPersonID, OrderDate
COMPUTE SUM(SubTotal), SUM(TotalDue) BY SalesPersonID;