PostgreSQL-14-异常值处理

-- 查看异常值
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;

 

转载于:https://www.cnblogs.com/swefii/p/10799112.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值