我正在使用大型数据库,而我正在尝试删除数据异常值。我从previous question找到了这段代码,我将其修改为与我的数据库一起使用。
DELETE FROM sv_condition_sw
WHERE snow_mountain > (select * from (SELECT AVG(snow_mountain)+1.5*STDDEV(snow_mountain)
FROM sv_condition_sw
WHERE lud='2012-11-28' ) x)
AND lud='2012-11-28'
除了一个例外,它很有用。
在我的案例中,我有成千上万的“lud”或产品。如何用一个查询删除每个lud(或产品)?
答案 0 :(得分:0)
你可以试试像
这样的东西DELETE sv_condition_sw
FROM sv_condition_sw,
(SELECT AVG(snow_mountain)+1.5*STDDEV(snow_mountain) as threshold, lud
FROM sv_condition_sw GROUP BY lud) as t
WHERE sv_condition_sw.snow_mountain > t.threshold
AND sv_condition_sw.lud=t.lud
这也适用于MySQL。