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:
Post a Comment