Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Vale a:Applica a: SQL Server 2025 (17.x)
Azure SQL Database
Azure Synapse Analytics
SQL database in Microsoft Fabric
Restituisce il prodotto di tutti i valori, o solo i valori DISTINCT, nell'espressione. Usare solo con colonne numeriche. I valori Null vengono ignorati.
Convenzioni relative alla sintassi Transact-SQL
Syntax
Sintassi della funzione di aggregazione.
PRODUCT ( [ ALL | DISTINCT ] expression )
Sintassi della funzione analitica.
PRODUCT ( [ ALL ] expression) OVER ( [ partition_by_clause ] [ order_by_clause ] )
Arguments
ALL
Applica la funzione di aggregazione a tutti i valori. ALL è l'impostazione predefinita.
DISTINCT
Specifica che PRODUCT restituisce il prodotto di valori univoci.
expression
Costante, colonna o funzione e qualsiasi combinazione di operatori aritmetici, bit per bit e stringhe. expression è un'espressione della categoria esatta di tipi di dati numerici o numerici approssimativi, ad eccezione del tipo di dati bit . Le funzioni di aggregazione e le sottoquery non sono consentite. Per altre informazioni, vedere Espressioni.
CAMBIO ( [ partition_by_clause ] [ order_by_clause ] )
Determina il partizionamento e l'ordinamento di un set di righe prima dell'applicazione della funzione.
partition_by_clause divide il set di risultati prodotto dalla FROM clausola in partizioni a cui viene applicata la funzione. Se non specificato, la funzione tratta tutte le righe del set di risultati della query come un unico gruppo.
order_by_clause determina l'ordine logico in cui viene eseguita l'operazione. Per altre informazioni, vedere clausola SELECT - OVER.
Tipi restituiti
Restituisce il prodotto di tutti i valori di espressione nel tipo di dati di espressione più preciso.
| Risultato dell'espressione | Tipo di ritorno |
|---|---|
| tinyint | int |
| smallint | int |
| int | int |
| bigint | bigint |
| categoria decimale (p, s) | Se (s == 0): decimale(38, 0) Altrimenti: decimale(38, 6) |
| categoria money e smallmoney | money |
| float e categoria reale | float |
Remarks
PRODUCT è una funzione deterministica se utilizzata senza le OVER clausole e ORDER BY . È non deterministico se specificato con le OVER clausole e ORDER BY . Per altre informazioni, vedere Funzioni deterministiche e non deterministiche.
Examples
Gli esempi di codice in questo articolo usano il database di esempio AdventureWorks2025 o AdventureWorksDW2025, che è possibile scaricare dalla home page Microsoft SQL Server Samples and Community Projects.
A. Moltiplicare le righe insieme
Gli esempi seguenti illustrano l'uso della funzione PRODUCT
SELECT PRODUCT(UnitPrice) AS ProductOfPrices
FROM Purchasing.PurchaseOrderDetail
WHERE ModifiedDate <= '2002-05-24'
GROUP BY ProductId;
Di seguito è riportato un set di risultati parziale.
ProductOfPrices
----------
2526.2435
41.916
3251.9077
21656.2655
40703.3993
4785336.3939
11432159532.8367
5898056095.7678
B. Usare la clausola OVER
Nell'esempio seguente viene utilizzata la funzione PRODUCT con la clausola OVER per fornire un tasso di rendimento sugli strumenti finanziari ipotetici. I dati sono partizionati da 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);
Il set di risultati è il seguente.
finInstrument CompoundedReturn
------------- ---------------------------------------
instrumentA 1.163527
instrumentA 1.163527
instrumentA 1.163527
instrumentB 1.048300
instrumentC 1.268900