SQLite
 sql >> Teknologi Basis Data >  >> RDS >> SQLite

Tweak Hasil Avg() Anda dalam SQLite dengan Kata Kunci BERBEDA

Jika Anda tahu tentang avg() fungsi di SQLite, Anda mungkin menyadari bahwa ini mengembalikan rata-rata semua non-NULL X dalam grup.

Tapi tahukah Anda bahwa Anda dapat menambahkan DISTINCT kata kunci untuk fungsi ini?

Jika Anda menambahkan DISTINCT kata kunci, avg() akan menghitung hasilnya berdasarkan nilai yang berbeda saja. Ini pada dasarnya sama dengan menghapus nilai duplikat dan kemudian menghitung rata-rata pada nilai yang tersisa.

Sintaks

Untuk menggunakan DISTINCT kata kunci, Anda cukup memasukkannya sebagai argumen pertama.

Seperti ini:

avg(DISTINCT X)

Dimana X adalah nama kolom yang rata-ratanya Anda hitung.

Contoh

Ambil tabel berikut yang disebut Products :

ProductId   ProductName    Price     
----------  -------------  ----------
1           Widget Holder  139.5     
2           Blue Widget    10.0      
3           Red Widget     10.0      
4           Green Widget   10.0      
5           Widget Stick   89.75     
6           Foo Cap        11.99     

Jika saya menjalankan avg() normal yang normal pada kolom Harga:

SELECT avg(Price) FROM Products;

Inilah yang saya dapatkan:

45.2066666666667

Tetapi jika saya menjalankan DISTINCT permintaan:

SELECT avg(DISTINCT Price) FROM Products;

Saya mengerti ini:

62.81

Jadi dalam hal ini hasilnya sangat berubah.

Untuk lebih jelasnya, ini dia berdampingan:

SELECT 
 avg(Price) AS "Non-Distinct",
 avg(DISTINCT Price) AS "Distinct"
FROM Products;

Hasil:

Non-Distinct      Distinct  
----------------  ----------
45.2066666666667  62.81     

Seperti yang mungkin Anda bayangkan, menggunakan DISTINCT kata kunci dengan avg() dapat sangat mendistorsi hasil, terutama jika ada banyak duplikat di satu ujung rentang, tetapi tidak banyak duplikat di ujung lainnya.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Lampirkan database sqlite di Android dengan SQLiteOpenHelper

  2. Kunci Utama SQLite

  3. Android SQLite Query - Mendapatkan 10 catatan terbaru

  4. Persatuan SQLite

  5. 2 Cara untuk Mengembalikan Nilai Numerik dari Kolom Database SQLite