Megosztás:


TERMÉK (Transact-SQL)

Vonatkozik a következőkre: SQL Server 2025 (17.x) Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsWarehouse in Microsoft FabricSQL database in Microsoft Fabric

A PRODUCT függvény az összes érték szorzatát, vagy csak DISTINCT az értékeket adja vissza egy kifejezésben. Csak numerikus oszlopokkal használható. A null értékek figyelmen kívül lesznek hagyva.

Transact-SQL szintaxis konvenciók

Syntax

Aggregált függvény szintaxis:

PRODUCT ( [ ALL | DISTINCT ] expression )

Elemzési függvény szintaxisa:

PRODUCT ( [ ALL ] expression) OVER ( [ partition_by_clause ] [ order_by_clause ] )

Arguments

ALL

Az összesítő függvény alkalmazása az összes értékre. A ALL az alapértelmezett.

KÜLÖNBÖZŐ

Megadja, hogy PRODUCT az egyedi értékek szorzatát adja vissza.

expression

Állandó, oszlop vagy függvény, valamint az aritmetikai, bitenkénti és sztring operátorok bármilyen kombinációja. a kifejezés a pontos numerikus vagy hozzávetőleges numerikus adattípus-kategória kifejezése, kivéve a bit adattípust. Az összesítő függvények és al lekérdezések nem engedélyezettek. További információ: Kifejezések.

VÉGE ( [ partition_by_clause ] [ order_by_clause ] )

Meghatározza egy sorhalmaz particionálását és sorrendjét a függvény alkalmazása előtt.

partition_by_clause a záradék által FROM létrehozott eredményhalmazt partíciókra osztja, amelyekre a függvényt alkalmazza. Ha nincs megadva, a függvény a lekérdezés eredményhalmazának összes sorát egyetlen csoportként kezeli.

order_by_clause határozza meg a művelet végrehajtásának logikai sorrendjét. További információ: SELECT – OVER záradék.

Visszatérési típusok

Az összes kifejezésérték szorzatát adja vissza a legpontosabb kifejezés adattípusban.

Kifejezés eredménye Visszatérési típus
tinyint int
smallint int
int int
bigint bigint
Tizedes kategória (P, S) Ha s , 0tizedes(38, 0), egyébként tizedes(38, 6)
pénz és kisvállalati kategória money
lebegőpontos és valós kategória float

Remarks

Az Azure SQL Managed Instance támogatása PRODUCT kizárólag Azure SQL Managed InstanceAUTD szolgáltatására korlátozódik.

PRODUCTdeterminisztikus függvény, ha a záradékok és OVER a ORDER BY záradékok nélkül használják. Nemdeterminisztikus, ha a OVER záradékokkal együtt ORDER BY van megadva. További információ: Determinisztikus és nem determinisztikus függvények.

Examples

A cikkben szereplő kódminták a AdventureWorks2025 vagy AdventureWorksDW2025 mintaadatbázist használják, amelyet a Microsoft SQL Server-minták és közösségi projektek kezdőlapjáról tölthet le.

A. Sorok összeszorzása

A következő példa a PRODUCT funkciót használja:

SELECT PRODUCT(UnitPrice) AS ProductOfPrices
FROM Purchasing.PurchaseOrderDetail
WHERE ModifiedDate <= '2023-05-24'
GROUP BY ProductId;

Itt van az eredmények összessége.

ProductOfPrices
----------
2526.2435
41.916
3251.9077
640559.8491
1469352.0378
222137708.073
11432159376.271
5898056028.2633
14030141.2883
2526.4194

B. Az OVER záradék használata

Az alábbi példa a PRODUCT záradékot OVER használva a feltétellel rendelkező függvényt használja a hipotetikus pénzügyi eszközök hozamának megadására. Az adatok particionálása a következő szerint finInstrumenttörténik: .

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);

Itt van az eredmények összessége.

finInstrument CompoundedReturn
------------- ---------------------------------------
instrumentA   1.163527
instrumentA   1.163527
instrumentA   1.163527
instrumentB   1.048300
instrumentC   1.268900