Oracle

2010-10-31 35 views
6

'daki bir sayı kümesinin ortalama mutlak sapmasının değerlendirilmesi Bir grup sayının (genellikle GROUP BY cümlesi aracılığıyla elde edilen) median absolute deviation değerini değerlendirmek için bir yordam uygulamaya çalışıyorum.Oracle

Bunu kullanmak istiyorum bir sorgunun bir örnek: Ben toplama işlevi example tarafından gidiş ama işlevi tüm ortancasını bilmelidir beri biraz karıştı ediyorum

select id, mad(values) from mytable group by id; 

Tüm iterasyonlardan önce rakamlar yapılır.

Böyle bir işlevin nasıl uygulanabileceğine dair herhangi bir işaretçi çok takdir edilecektir.

cevap

9
Oracle 10g+ olarak

:

SELECT MEDIAN(ABS(value - med)) 
FROM (
     SELECT value, MEDIAN(value) OVER() AS med 
     FROM mytable 
     ) 

veya GROUP BY ile aynı:

SELECT id, MEDIAN(ABS(value - med)) 
FROM (
     SELECT id, value, MEDIAN(value) OVER(PARTITION BY id) AS med 
     FROM mytable 
     ) 
GROUP BY 
     id