Udostępnij za pośrednictwem


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.

Ważna informacjaWażne:

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 ().

Ikona łącza do tematuJęzyka Transact-SQL składni konwencje

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;