Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
Vonatkozik a következőkre: SQL Server 2025 (17.x)
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Warehouse in Microsoft Fabric
SQL 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