Delen via


PRODUCT (Transact-SQL)

Van toepassing op:Van toepassing op: SQL Server 2025 (17.x) Preview Azure SQL DatabaseAzure Synapse AnalyticsSQL-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