Search This Blog

Fungsi Avg() SQL Server

Fungsi Avg() SQL Server adalah fungsi untuk menghitung rata-rata dari suatu grup. Nilai Null adalah diabaikan.

Penulisan: Avg([All|Distinct] expression)

Argument:
  • All, menerapkan fungsi agregat untuk semua nilai. All adalah default.
  • Distinct, menentukan bahwa AVG dilakukan hanya pada setiap data unik dari nilai, terlepas dari berapa kali nilai terjadi
  • Expression, adalah sebuah ekspresi dari kategori numerik atau perkiraan yang tepat tipe data numerik, kecuali untuk tipe data bit. fungsi Agregat dan subqueries tidak diizinkan

Nilai Hasil:

Jenis nilai hasil ditentukan oleh jenis hasil ekspresi yang dievaluasi.

Hasil Data Type data hasil
integer category int
decimal category (p, s) decimal(38, s) divided by decimal(10, 0)
money and smallmoney category money
float and real category float

Contoh:

A. Menggunakan Fungsi Avg dab Sum untuk melakukan perhitungan

Contoh ini menghitung rata-rata field advance dan menjumlahkan penjualan year-to-date dari semua buku bisnis. Masing-masing fungsi agregat menghasilkan nilai ringkasan tunggal untuk semua baris yang diambil.
USE pubs

SELECT AVG(advance), SUM(ytd_sales)
FROM titles
WHERE type = 'business'
Inilah hasilnya:
-------------------------- -----------
6,281.25                   30788

(1 row(s) affected)


B. Menggunakan Fungsi Avg dab Sum dengan clause Group By

Ketika digunakan dengan klausa GROUP BY, setiap fungsi agregat menghasilkan nilai tunggal untuk masing-masing kelompok, bukan untuk seluruh tabel. Contoh ini menghasilkan nilai ringkasan untuk setiap jenis buku yang mencakup uang muka rata-rata untuk setiap jenis buku dan jumlah penjualan year-to-tahun untuk setiap jenis buku.

USE pubs

SELECT type, AVG(advance), SUM(ytd_sales)
FROM titles
GROUP BY type
ORDER BY type
Inilah hasilnya:
type                                         
------------ -------------------------- -----------
business     6,281.25                   30788
mod_cook     7,500.00                   24278
popular_comp 7,500.00                   12875
psychology   4,255.00                   9939 
trad_cook    6,333.33                   19566
UNDECIDED    NULL                       NULL

(6 row(s) affected)

C. Menggunakan Fungsi Avg dengan Distinct

Pernyataan ini mengembalikan harga rata-rata buku bisnis.

USE pubs

SELECT AVG(DISTINCT price)
FROM titles
WHERE type = 'business'
Inilah hasilnya:
--------------------------
11.64               

(1 row(s) affected)

D. Menggunakan Fungsi Avg tanpa Distinct

Tanpa DISTINCT, fungsi AVG menemukan harga rata-rata semua judul bisnis di judul tabel.

USE pubs

SELECT AVG(price)
FROM titles
WHERE type = 'business'
Inilah hasilnya:
--------------------------
13.73                  

(1 row(s) affected)

No comments: