-- 查看异常值
CREATE TABLE outerdata(id int PRIMARY KEY,value numeric);
\COPY outerdata FROM 'C:\Users\iHJX_Alienware\Desktop\异常值.csv' WITH CSV HEADER; -- 加载数据


SELECT AVG(value),STDDEV(value) FROM outerdata; -- 查看均值、标准差
ALTER TABLE outerdata ADD u numeric;
UPDATE outerdata SET u = (SELECT AVG(value) FROM outerdata); -- 添加列,计算均值
ALTER TABLE outerdata ADD std numeric;
UPDATE outerdata SET std = (SELECT STDDEV(value) FROM outerdata); -- 添加列,计算标准差
ALTER TABLE outerdata ADD sgm numeric;
UPDATE outerdata SET sgm = ABS(value - u); -- 添加列,计算value与均值差
SELECT * FROM outerdata WHERE sgm > 3*std; -- 筛选出异常值

-- 通过单个WHERE做筛选
SELECT * FROM outerdata
WHERE ABS(value - (SELECT AVG(value) FROM outerdata)) > (SELECT STDDEV(value) FROM outerdata)*3;


-- 删除异常值
DELETE FROM outerdata
WHERE ABS(value - (SELECT AVG(value) FROM outerdata)) > (SELECT STDDEV(value) FROM outerdata)*3;

 

相关文章:

  • 2021-09-26
  • 2022-12-23
  • 2022-12-23
  • 2021-06-14
  • 2020-01-28
  • 2021-10-08
  • 2021-08-24
  • 2021-06-29
猜你喜欢
  • 2021-06-12
  • 2021-08-11
  • 2022-12-23
  • 2021-11-02
  • 2022-12-23
  • 2021-05-29
  • 2021-06-30
相关资源
相似解决方案