Bagikan melalui


VARP (Transact-SQL)

Berlaku untuk: Titik akhir analitik SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Platform System (PDW) SQL di Microsoft Fabric Warehouse di Microsoft Fabric

Mengembalikan varian statistik untuk populasi untuk semua nilai dalam ekspresi yang ditentukan.

Konvensi sintaks transact-SQL

Sintaks

-- Aggregate Function Syntax   
VARP ( [ ALL | DISTINCT ] expression )  
  
-- Analytic Function Syntax  
VARP ([ ALL ] expression) OVER ( [ partition_by_clause ] order_by_clause)  

Argumen

ALL
Menerapkan fungsi ke semua nilai. ALL adalah default.

NYATA
Menentukan bahwa setiap nilai unik dipertimbangkan.

expression
Adalah ekspresi dari kategori jenis data numerik atau perkiraan numerik yang tepat, kecuali untuk jenis data bit. Fungsi dan subkueri agregat tidak diizinkan.

OVER ( [ partition_by_clause ] order_by_clause)
partition_by_clause membagi tataan hasil yang dihasilkan oleh klausul FROM 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. order_by_clause diperlukan. Untuk informasi selengkapnya, lihat Klausul OVER (Transact-SQL).

Jenis Kembalian

float

Keterangan

Jika VARP digunakan pada semua item dalam pernyataan SELECT, setiap nilai dalam tataan hasil disertakan dalam perhitungan. VARP hanya dapat digunakan dengan kolom numerik. Nilai null diabaikan.

VARP adalah fungsi deterministik saat digunakan tanpa klausa OVER dan ORDER BY. Ini tidak deterministik ketika ditentukan dengan klausul OVER dan ORDER BY. Untuk informasi selengkapnya, lihat Fungsi Deterministik dan Nondeterministik.

Contoh

A: Menggunakan VARP

Contoh berikut mengembalikan varians untuk populasi untuk semua nilai bonus dalam SalesPerson tabel dalam database AdventureWorks2022.

SELECT VARP(Bonus)  
FROM Sales.SalesPerson;  
GO  

Contoh: Azure Synapse Analytics and Analytics Platform System (PDW)

B: Menggunakan VARP

Contoh berikut mengembalikan VARPnilai kuota penjualan dalam tabel dbo.FactSalesQuota. Kolom pertama berisi varians semua nilai yang berbeda dan kolom kedua berisi varian semua nilai termasuk nilai duplikat apa pun.

-- Uses AdventureWorks  
  
SELECT VARP(DISTINCT SalesAmountQuota)AS Distinct_Values, VARP(SalesAmountQuota) AS All_Values  
FROM dbo.FactSalesQuota;  

Berikut set hasilnya.

Distinct_Values   All_Values
----------------  ----------------
158146830494.18   157788848582.94

C. Menggunakan VARP dengan OVER

Contoh berikut mengembalikan VARP nilai kuota penjualan untuk setiap kuartal dalam satu tahun kalender. Perhatikan bahwa ORDER BY dalam klausul OVER mengurutkan varian statistik dan ORDER BY dari pernyataan SELECT mengurutkan tataan hasil.

-- Uses AdventureWorks  
  
SELECT CalendarYear AS Year, CalendarQuarter AS Quarter, SalesAmountQuota AS SalesQuota,  
       VARP(SalesAmountQuota) OVER (ORDER BY CalendarYear, CalendarQuarter) AS Variance  
FROM dbo.FactSalesQuota  
WHERE EmployeeKey = 272 AND CalendarYear = 2002  
ORDER BY CalendarQuarter;  

Berikut set hasilnya.

Year  Quarter  SalesQuota              Variance
----  -------  ----------------------  -------------------
2002  1         91000.0000             0.00
2002  2        140000.0000             600250000.00
2002  3         70000.0000             860222222.22
2002  4        154000.0000             1185187500.00

Lihat Juga

Fungsi Agregat (T-SQL)
Klausul OVER (Transact-SQL)