Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für: SQL Server 2025 (17.x)
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Warehouse in Microsoft Fabric SQL
database in Microsoft Fabric
Die PRODUCT Funktion gibt das Produkt aller Werte, oder nur der Werte DISTINCT , in einem Ausdruck zurück. Wird nur für numerische Spalten verwendet. NULL-Werte werden ignoriert.
Transact-SQL-Syntaxkonventionen
Syntax
Syntax der aggregierten Funktionen:
PRODUCT ( [ ALL | DISTINCT ] expression )
Analysefunktionssyntax:
PRODUCT ( [ ALL ] expression) OVER ( [ partition_by_clause ] [ order_by_clause ] )
Arguments
ALL
Wendet die Aggregatfunktion auf alle Werte an.
ALL ist die Standardeinstellung.
EINDEUTIG
Spezifiziert, dass PRODUCT das Produkt eindeutiger Werte zurückgibt.
expression
Eine Konstante, Spalte oder Funktion sowie eine beliebige Kombination aus arithmetischen, bitweisen und Zeichenfolgenoperatoren. Ausdruck ist ein Ausdruck der genauen numerischen oder ungefähren Numerischen Datentypkategorie, mit Ausnahme des Bitdatentyps . Aggregatfunktionen und Unterabfragen sind nicht zulässig. Weitere Informationen finden Sie unter Expressions.
ÜBER ( [ partition_by_clause ] [ order_by_clause ] )
Bestimmt die Partitionierung und Sortierung eines Rowsets, bevor die Funktion angewendet wird.
partition_by_clause dividiert das von der FROM Klausel erzeugte Resultset in Partitionen, auf die die Funktion angewendet wird. Wird dies nicht angegeben, verarbeitet die Funktion alle Zeilen des Abfrageresultsets als einzelne Gruppe.
order_by_clause bestimmt die logische Reihenfolge, in der der Vorgang ausgeführt wird. Weitere Informationen finden Sie unter SELECT - OVER-Klausel.
Rückgabetypen
Gibt das Produkt aller Ausdruckswerte im präzisesten Ausdrucksdatentyp zurück.
| Ausdrucksergebnis | Rückgabetyp |
|---|---|
| tinyint | int |
| smallint | int |
| int | int |
| bigint | bigint |
| Dezimalkategorie (P, S) | Wenn s , dezimal(38, 0) ist0, ansonsten dezimal(38, 6) |
| Money und Smallmoney Kategorie | money |
| Float und reale Kategorie | float |
Remarks
Die Unterstützung für PRODUCT in Azure SQL Managed Instance ist auf Azure SQL Managed InstanceAUTD beschränkt.
PRODUCT ist eine deterministische Funktion, wenn sie ohne die OVER Und-Klauseln ORDER BY verwendet wird. Sie ist nicht deterministisch, wenn sie mit den OVER Und-Klauseln ORDER BY angegeben wird. Weitere Informationen finden Sie unter Deterministische und nicht deterministische Funktionen.
Examples
Die Codebeispiele in diesem Artikel verwenden die AdventureWorks2025- oder AdventureWorksDW2025 Beispieldatenbank, die Sie von der Microsoft SQL Server Samples and Community Projects Homepage herunterladen können.
A. Multiplizieren von Zeilen
Das folgende Beispiel verwendet die Funktion PRODUCT :
SELECT PRODUCT(UnitPrice) AS ProductOfPrices
FROM Purchasing.PurchaseOrderDetail
WHERE ModifiedDate <= '2023-05-24'
GROUP BY ProductId;
Hier ist das Ergebnis.
ProductOfPrices
----------
2526.2435
41.916
3251.9077
640559.8491
1469352.0378
222137708.073
11432159376.271
5898056028.2633
14030141.2883
2526.4194
B. Verwenden der OVER-Klausel
Das folgende Beispiel verwendet die PRODUCT Funktion mit der OVER Klausel, um eine Rendite für hypothetische Finanzinstrumente bereitzustellen. Die Daten werden von finInstrument.
SELECT finInstrument,
PRODUCT(1 + rateOfReturn) OVER (PARTITION BY finInstrument) AS CompoundedReturn
FROM (VALUES (0.1626, 'instrumentA'),
(0.0483, 'instrumentB'),
(0.2689, 'instrumentC'),
(-0.1944, 'instrumentA'),
(0.2423, 'instrumentA')
) AS MyTable(rateOfReturn, finInstrument);
Hier ist das Ergebnis.
finInstrument CompoundedReturn
------------- ---------------------------------------
instrumentA 1.163527
instrumentA 1.163527
instrumentA 1.163527
instrumentB 1.048300
instrumentC 1.268900