Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of mappen te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen om mappen te wijzigen.
Van toepassing op: SQL Server 2025 (17.x)
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Warehouse in Microsoft Fabric SQL
database in Microsoft Fabric
De PRODUCT functie geeft het product van alle waarden, of alleen de DISTINCT waarden, terug in een uitdrukking. Alleen gebruiken met numerieke kolommen. Null-waarden worden genegeerd.
Transact-SQL syntaxis-conventies
Syntax
Aggregate functiesyntaxis:
PRODUCT ( [ ALL | DISTINCT ] expression )
Syntaxis van analysefunctie:
PRODUCT ( [ ALL ] expression) OVER ( [ partition_by_clause ] [ order_by_clause ] )
Arguments
ALL
Hiermee past u de statistische functie toe op alle waarden.
ALL is de standaardwaarde.
ONDERSCHEIDEND
Specificeert dat PRODUCT het product van unieke waarden teruggeeft.
expression
Een constante, kolom of functie, en elke combinatie van rekenkundige, bitsgewijze en tekenreeksoperatoren. expressie is een expressie van de exacte numerieke of geschatte numerieke gegevenstypecategorie, met uitzondering van het bitgegevenstype . Statistische functies en subquery's zijn niet toegestaan. Zie Expressies voor meer informatie.
OVER ( [ partition_by_clause ] [ order_by_clause ] )
Bepaalt de partitionering en volgorde van een rijenset voordat de functie wordt toegepast.
partition_by_clause verdeelt de resultatenset die door de FROM component wordt geproduceerd in partities waarop de functie wordt toegepast. Als deze niet is opgegeven, behandelt de functie alle rijen van de queryresultatenset als één groep.
order_by_clause bepaalt de logische volgorde waarin de bewerking wordt uitgevoerd. Zie SELECT - OVER-component voor meer informatie.
Retourtypen
Retourneert het product van alle expressiewaarden in het meest nauwkeurige expressiegegevenstype .
| Expressieresultaat | Resultaattype |
|---|---|
| tinyint | int |
| smallint | int |
| int | int |
| bigint | bigint |
| Decimale categorie (P, S) | Als s , decimaal(38, 0) is0, anders decimaal(38, 6) |
| geld en smallmoney categorie | money |
| float en echte categorie | float |
Remarks
Ondersteuning voor PRODUCT in Azure SQL Managed Instance is beperkt tot Azure SQL Managed InstanceAUTD.
PRODUCT is een deterministische functie wanneer deze wordt gebruikt zonder de OVER en ORDER BY componenten. Het is niet-deterministisch wanneer deze is opgegeven met de OVER en ORDER BY componenten. Zie Deterministische en niet-deterministische functiesvoor meer informatie.
Examples
De codevoorbeelden in dit artikel gebruiken de AdventureWorks2025 of AdventureWorksDW2025 voorbeelddatabase die u kunt downloaden van de startpagina van Microsoft SQL Server Samples en Community Projects .
A. Rijen samen vermenigvuldigen
Het volgende voorbeeld gebruikt de PRODUCT functie:
SELECT PRODUCT(UnitPrice) AS ProductOfPrices
FROM Purchasing.PurchaseOrderDetail
WHERE ModifiedDate <= '2023-05-24'
GROUP BY ProductId;
Hier is het resultatenoverzicht.
ProductOfPrices
----------
2526.2435
41.916
3251.9077
640559.8491
1469352.0378
222137708.073
11432159376.271
5898056028.2633
14030141.2883
2526.4194
B. De OVER-clausule gebruiken
Het volgende voorbeeld gebruikt de PRODUCT functie met de OVER clausule om een rendement te geven op hypothetische financiële instrumenten. De gegevens worden gepartitioneerd door 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 is het resultatenoverzicht.
finInstrument CompoundedReturn
------------- ---------------------------------------
instrumentA 1.163527
instrumentA 1.163527
instrumentA 1.163527
instrumentB 1.048300
instrumentC 1.268900