Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk: SQL Server 2025 (17.x)
Azure SQL Database
AzureSQL Managed Instance Azure SQL Managed Warehouse
AzureSynapse Analytics
di Microsoft FabricSQL database di Microsoft Fabric
Fungsi mengembalikan PRODUCT produk dari semua nilai, atau hanya DISTINCT nilai, dalam ekspresi. Gunakan hanya dengan kolom numerik. Nilai null diabaikan.
Syntax
Sintaks fungsi agregat:
PRODUCT ( [ ALL | DISTINCT ] expression )
Sintaks fungsi analitik:
PRODUCT ( [ ALL ] expression) OVER ( [ partition_by_clause ] [ order_by_clause ] )
Arguments
ALL
Menerapkan fungsi agregat ke semua nilai.
ALL adalah default.
NYATA
Menentukan yang PRODUCT mengembalikan produk nilai unik.
expression
Konstanta, kolom, atau fungsi, dan kombinasi operator aritmatika, bitwise, dan string apa pun. ekspresi adalah ekspresi dari kategori jenis data numerik atau perkiraan numerik yang tepat, kecuali untuk jenis data bit . Fungsi dan subkueri agregat tidak diizinkan. Untuk informasi selengkapnya, lihat Ekspresi.
OVER ( [ partition_by_clause ] [ order_by_clause ] )
Menentukan pemartisian dan pengurutan set baris sebelum fungsi diterapkan.
partition_by_clause membagi tataan hasil yang dihasilkan oleh FROM klausul menjadi partisi tempat fungsi diterapkan. Jika tidak ditentukan, fungsi memperlakukan semua baris hasil kueri yang ditetapkan sebagai grup tunggal.
order_by_clause menentukan urutan logis tempat operasi dilakukan. Untuk informasi selengkapnya, lihat klausa SELECT - OVER.
Tipe pengembalian
Mengembalikan produk dari semua nilai ekspresi dalam jenis data ekspresi yang paling tepat.
| Hasil ekspresi | Tipe pengembalian |
|---|---|
| tinyint | int |
| smallint | int |
| int | int |
| bigint | bigint |
| Kategori Desimal (P, S) | Jika s adalah 0, desimal(38, 0), jika tidak , desimal(38, 6) |
| kategori uang dan smallmoney | money |
| float dan kategori nyata | float |
Remarks
Dukungan untuk PRODUCT Azure SQL Managed Instance terbatas pada Azure SQL Managed InstanceAUTD.
PRODUCT adalah fungsi deterministik ketika digunakan tanpa OVER klausul dan ORDER BY . Ini nondeterministik ketika ditentukan dengan OVER klausul dan ORDER BY . Untuk informasi selengkapnya, lihat Fungsi deterministik dan nondeterministik.
Examples
Sampel kode dalam artikel ini menggunakan database sampel AdventureWorks2025 atau AdventureWorksDW2025, yang dapat Anda unduh dari halaman beranda Sampel dan Proyek Komunitas Microsoft SQL Server.
A. Mengalikan baris bersama-sama
Contoh berikut menggunakan fungsi ini PRODUCT :
SELECT PRODUCT(UnitPrice) AS ProductOfPrices
FROM Purchasing.PurchaseOrderDetail
WHERE ModifiedDate <= '2023-05-24'
GROUP BY ProductId;
Berikut kumpulan hasilnya.
ProductOfPrices
----------
2526.2435
41.916
3251.9077
640559.8491
1469352.0378
222137708.073
11432159376.271
5898056028.2633
14030141.2883
2526.4194
B. Menggunakan klausa OVER
Contoh berikut menggunakan PRODUCT fungsi dengan OVER klausa untuk memberikan tingkat pengembalian instrumen keuangan hipotetis. Data dipartisi oleh 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);
Berikut kumpulan hasilnya.
finInstrument CompoundedReturn
------------- ---------------------------------------
instrumentA 1.163527
instrumentA 1.163527
instrumentA 1.163527
instrumentB 1.048300
instrumentC 1.268900