Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:Van toepassing op: SQL Server 2025 (17.x) Preview
Azure SQL Database
Azure Synapse Analytics
SQL-database in Microsoft Fabric
Retourneert het PRODUCT van alle waarden, of alleen de DISTINCT-waarden, in de expressie. Alleen gebruiken met numerieke kolommen. Null-waarden worden genegeerd.
Transact-SQL syntaxis-conventies
Syntaxis
Syntaxis van statistische functie.
PRODUCT ( [ ALL | DISTINCT ] expression )
Syntaxis van analysefunctie.
PRODUCT ( [ ALL ] expression) OVER ( [ PARTITION BY clause ] ORDER BY clause)
Argumenten
ALLE
Hiermee past u de statistische functie toe op alle waarden. ALL is de standaardinstelling.
DUIDELIJK
Hiermee geeft u op dat PRODUCT het PRODUCT van unieke waarden retourneert.
expressie
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-component ] ORDER BY-component )
Bepaalt de partitionering en volgorde van een rijenset voordat de functie wordt toegepast.
PARTITION BY
component 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
component bepaalt de logische volgorde waarin de bewerking wordt uitgevoerd. Verplicht. Zie 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) | If (s == 0): decimal(38, 0) Else: decimal(38, 6) |
geld en smallmoney categorie | geld |
float en echte categorie | drijven |
Opmerkingen
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.
Voorbeelden
De codevoorbeelden in dit artikel gebruiken de AdventureWorks2022
of AdventureWorksDW2022
voorbeelddatabase die u kunt downloaden van de startpagina van Microsoft SQL Server Samples en Community Projects .
Eén. Rijen samen vermenigvuldigen
In de volgende voorbeelden ziet u hoe u de functie PRODUCT gebruikt
SELECT PRODUCT(UnitPrice) AS ProductOfPrices
FROM Purchasing.PurchaseOrderDetail
WHERE ModifiedDate <= '2002-05-24'
GROUP BY ProductId;
Hier volgt een gedeeltelijke resultatenset.
ProductOfPrices
----------
2526.2435
41.916
3251.9077
21656.2655
40703.3993
4785336.3939
11432159532.8367
5898056095.7678
B. De OVER-clausule gebruiken
In het volgende voorbeeld wordt de functie PRODUCT met de OVER-component gebruikt om een rendement op hypothetische financiële instrumenten te bieden. 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