Udostępnij za pośrednictwem


Summarizing Data Using COMPUTE and COMPUTE BY

Klauzule COMPUTE i COMPUTE BY są dostarczane w celu zapewnienia zgodności z poprzednimi wersjami.Zamiast tego należy użyć następujących składników:

klauzula COMPUTE BY pozwala wyświetlić szczegóły i Podsumowanie wierszy z jednej instrukcja SELECT.Można obliczyć wartości podsumowań podgrup lub sumaryczne wartości dla całej zestaw wyników.

Klauzula COMPUTE wykonuje następujące informacje:

  • Opcjonalne BY słowa kluczowego.Spowoduje to obliczenie w określonym wierszu agregacja na podstawie na kolumna.

  • Wiersz funkcja agregująca nazwy.Obejmuje to SUM, AVG, MIN, MAX lub ile.liczb.

  • kolumna, na którym należy wykonać w wierszu funkcja agregująca.

Zestawy wyniki wygenerowany przez COMPUTE

Generowane przez COMPUTE wartości podsumowań są wyświetlane jako osobne wynik ustawia się w wynikach kwerendy.Wyniki kwerendy, które zawierają klauzulę COMPUTE są podobne do raport typu control-break.Jest to raport, którego wartości podsumowań są kontrolowane przez grupowanie lub podziały stron, określonym przez użytkownika.Może być wartości podsumowujące dla grup, a także można obliczać więcej niż jedną funkcja agregacja dla tej samej grupy.

Gdy COMPUTE BY klauzula jest określany za pomocą opcjonalnej, dostępne są dwa zestawy wyników dla każdej grupy, które kwalifikują się do ZAZNACZANIA:

  • Pierwszy zestaw wyników dla każdej grupy ma zestaw wierszy szczegółów, które zawierają informacje o liście dla tej grupy.

  • Drugi zestaw wyników dla każdej grupy ma jeden wiersz, który zawiera sumy częściowe funkcji agregacja, określonych w klauzula COMPUTE dla tej grupy.

Po określeniu COMPUTE bez opcjonalny BY klauzula istnieją dwa zestawy wyników dla SELECT:

  • Pierwszy zestaw wyników dla każdej grupy ma wszystkie wiersze szczegółów, które zawierają informacje o liście.

  • Drugi zestaw wyników zawiera jeden wiersz, który zawiera sumy pośrednie z agregacja funkcji określonych w klauzula COMPUTE.

Przykłady, które korzystają z COMPUTE

Poniżej SELECT Instrukcja używa prosty COMPUTE Klauzula do utworzenia sumy jednostki cen i rabatów wiersza z SalesOrderDetail Tabela:

USE AdventureWorks
SELECT SalesOrderID, UnitPrice, UnitPriceDiscount
FROM Sales.SalesOrderDetail
ORDER BY SalesOrderID
COMPUTE SUM(UnitPrice), SUM(UnitPriceDiscount)

Poniższa kwerenda dodaje opcjonalny BY słowo kluczowe, aby COMPUTE Klauzula do utworzenia sumy częściowe dla każdego zamówienia sprzedaży:

USE AdventureWorks
SELECT SalesOrderID, UnitPrice, UnitPriceDiscount
FROM Sales.SalesOrderDetail
ORDER BY SalesOrderID
COMPUTE SUM(UnitPrice), SUM(UnitPriceDiscount) BY SalesOrderID

Wyniki tego SELECT Instrukcja zwracać dwa zestawy wyników dla każdego zamówienia sprzedaży. Pierwszy zestaw wyników dla każdego zamówienia sprzedaży ma zestaw wierszy, które zawiera informacje o określonym na liście select.Drugi zestaw dla każdego zamówienia sprzedaży wyników zawiera sumy częściowe dwóch SUM funkcje w COMPUTE Klauzula.

Uwaga

W niektórych narzędzi takich jak Osql, wiele sumy częściowej lub sumy podsumowań agregacja wyświetlony, podobnie jak w przypadku każdej sumie częściowej jest oddzielnym wierszu zestaw wyników.Jest to ze względu na sposób, w jaki narzędzie formatuje dane wyjściowe; zagregowanych sumy częściowej lub całkowitej są zwracane w jednym wierszu.Inne aplikacje, takie jak SQL Server Management Studio, sformatować kilku zagregowanych w tym samym wierszu.

Porównywanie COMPUTE do GROUP BY

Poniżej zestawiono różnice między COMPUTE i GROUP BY:

  • Daje w wyniku zestaw wyników jednego GROUP BY.Istnieje jeden wiersz dla każdej grupowanie zawierające tylko kolumn grupowanie i agregacja funkcji pokazujące sub agregacja dla tej grupowanie.Lista wyboru może zawierać tylko kolumn grupowanie i funkcji agregacja.

  • COMPUTE daje wiele zestawów wyników.Jeden z rodzajów zestaw wyników zawiera wiersze szczegółów dla każdej grupy zawierające wyrażenie z listy select.Inny rodzaj zestaw wyników zawiera subaggregate dla grupy lub sumy agregacja dla instrukcja SELECT.Lista wyboru może zawierać wyrażenia innych niż kolumn grupowanie lub agregacja funkcji.agregacja Funkcje są określone w klauzula COMPUTE nie ma na liście select.

Używa następującej kwerendy GROUP BY funkcje agregacja i. Zwraca jeden zestaw wyników, która zawiera jeden wiersz na grupę zawierającą łącznej sumy częściowe dla tej grupy:

USE AdventureWorks
SELECT SalesOrderID, SUM(UnitPrice), SUM(UnitPriceDiscount)
FROM Sales.SalesOrderDetail
GROUP BY SalesOrderID

Uwaga

Nie możesz dołączyć ntext, text, lub image typy danych w klauzula COMPUTE lub COMPUTE BY.

See Also

Concepts

Other Resources