Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:Gäller för: SQL Server 2025 (17.x) Förhandsversion av
Azure SQL Database
Azure Synapse Analytics
SQL-databas i Förhandsversion av Microsoft Fabric
Returnerar PRODUKTEN för alla värden, eller endast DISTINCT-värdena, i uttrycket. Använd endast med numeriska kolumner. Null-värden ignoreras.
Transact-SQL syntaxkonventioner
Syntax
Aggregerad funktionssyntax.
PRODUCT ( [ ALL | DISTINCT ] expression )
Analysfunktionssyntax.
PRODUCT ( [ ALL ] expression) OVER ( [ PARTITION BY clause ] ORDER BY clause)
Arguments
ALL
Tillämpar aggregeringsfunktionen på alla värden. ALLA är standardvärdet.
DISTINCT
Anger att PRODUCT returnerar PRODUKT med unika värden.
expression
En konstant, kolumn eller funktion och valfri kombination av aritmetiska operatorer, bitvis och strängoperatorer. expression är ett uttryck för den exakta numeriska eller ungefärliga kategorin för numerisk datatyp, förutom bitdatatypen . Mängdfunktioner och underfrågor är inte tillåtna. Mer information finns i Uttryck.
ÖVER ( [ PARTITION BY-sats ] ORDER BY-sats )
Avgör partitionering och ordning för en raduppsättning innan funktionen tillämpas.
PARTITION BY -satsen delar upp resultatuppsättningen som skapas av FROM-satsen i partitioner som funktionen tillämpas på. Om det inte anges behandlar funktionen alla rader i frågeresultatuppsättningen som en enda grupp.
ORDER BY -satsen avgör i vilken logisk ordning åtgärden utförs. Required. Mer information finns i OVER-satsen.
Return types
Returnerar produkten av alla uttrycksvärden i den mest exakta uttrycksdatatypen .
| Expression result | Return type |
|---|---|
| tinyint | int |
| smallint | int |
| int | int |
| bigint | bigint |
| decimalkategori (p, s) | Om (s == 0): decimal(38, 0) Annars: decimal(38, 6) |
| pengar och smallmoney kategori | money |
| flyttal och verklig kategori | float |
Remarks
PRODUCT är en deterministisk funktion när den OVER används utan - och-satserna ORDER BY . Det är icke-terministiskt när det OVER anges med - och-satserna ORDER BY . Mer information finns i deterministiska och icke-terministiska funktioner.
Examples
Kodexemplen i den här artikeln använder AdventureWorks2022- eller AdventureWorksDW2022-exempeldatabasen, som du kan ladda ned från startsidan Microsoft SQL Server Samples och Community Projects.
A. Multiplicera rader tillsammans
Följande exempel visar hur du använder funktionen PRODUCT
SELECT PRODUCT(UnitPrice) AS ProductOfPrices
FROM Purchasing.PurchaseOrderDetail
WHERE ModifiedDate <= '2002-05-24'
GROUP BY ProductId;
Här är en partiell resultatuppsättning.
ProductOfPrices
----------
2526.2435
41.916
3251.9077
21656.2655
40703.3993
4785336.3939
11432159532.8367
5898056095.7678
B. Använd OVER-satsen
I följande exempel används funktionen PRODUCT med OVER-satsen för att tillhandahålla en avkastning på hypotetiska finansiella instrument. Data partitioneras av 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);
Här är resultatet.
finInstrument CompoundedReturn
------------- ---------------------------------------
instrumentA 1.163527
instrumentA 1.163527
instrumentA 1.163527
instrumentB 1.048300
instrumentC 1.268900