Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Menghilangkan outlier dengan standar deviasi di SQL Server

Jika Anda mengasumsikan distribusi kurva lonceng peristiwa, maka hanya 68% nilai yang akan berada dalam jarak 1 standar deviasi dari rata-rata (95% ditutupi oleh 2 standar deviasi).

Saya akan memuat variabel dengan standar deviasi rentang Anda (diturunkan menggunakan stdev / stdevp sql function) dan kemudian pilih nilai yang berada dalam jumlah standar deviasi yang sesuai.

declare @stdtest table (colname varchar(20), colvalue int)

insert into @stdtest (colname, colvalue) values ('a', 2)
insert into @stdtest (colname, colvalue) values ('b', 4)
insert into @stdtest (colname, colvalue) values ('c', 4)
insert into @stdtest (colname, colvalue) values ('d', 4)
insert into @stdtest (colname, colvalue) values ('e', 5)
insert into @stdtest (colname, colvalue) values ('f', 5)
insert into @stdtest (colname, colvalue) values ('g', 7)
insert into @stdtest (colname, colvalue) values ('h', 9)

declare @std decimal
declare @mean decimal
declare @lower decimal
declare @higher decimal
declare @noofstds int

select @std = STDEV(colvalue), @mean = AVG(colvalue) from @stdtest

--68%
set @noofstds = 1
select @lower = @mean - (@noofstds * @std)
select @higher = @mean + (@noofstds * @std)

select @lower, @higher, * from @stdtest where colvalue between @lower and @higher

--returns rows with a colvalue between 3 and 7 inclusive

--95%
set @noofstds = 2
select @lower = @mean - (@noofstds * @std)
select @higher = @mean + (@noofstds * @std)

select @lower, @higher, * from @stdtest where colvalue between @lower and @higher

--returns rows with a colvalue between 1 and 9 inclusive


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Membuat, tidak merusak, kinerja SQL Server

  2. Item dengan kunci yang sama telah ditambahkan Kesalahan pada SSRS Saat Mencoba Mengatur Dataset

  3. bagaimana saya bisa Memperbarui 100 catatan teratas di server sql

  4. SQL-Server:Sintaks salah di dekat kata kunci 'dengan'. Jika pernyataan ini adalah ekspresi tabel umum

  5. Cara Memeriksa Pengaturan ANSI_NULLS Sesi Anda di SQL Server