VARP (SQL Bertransaksi)
Berlaku untuk:
SQL Server (semua versi yang didukung)
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Mengembalikan varian statistik untuk populasi untuk semua nilai dalam ekspresi yang ditentukan.
Sintaks
-- Aggregate Function Syntax
VARP ( [ ALL | DISTINCT ] expression )
-- Analytic Function Syntax
VARP ([ ALL ] expression) OVER ( [ partition_by_clause ] order_by_clause)
Catatan
Untuk melihat sintaks transact-SQL untuk SQL Server 2014 dan yang lebih lama, lihat Dokumentasi versi sebelumnya.
Argumen
ALL
Menerapkan fungsi ke semua nilai. ALL adalah default.
DISTINCT
Menentukan bahwa setiap nilai unik dipertimbangkan.
ekspresi
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 (SQL Transact).
Jenis Pengembalian
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 ketika digunakan tanpa klausa OVER dan ORDER BY. Ini nondeterministik ketika ditentukan dengan klausa 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 AdventureWorks2012.
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 varian 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 adalah hasil yang ditetapkan.
Distinct_Values All_Values
---------------- ----------------
158146830494.18 157788848582.94
C. Menggunakan VARP dengan OVER
Contoh berikut mengembalikan VARP nilai kuota penjualan untuk setiap kuartal dalam setahun 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 adalah hasil yang ditetapkan.
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
