表结构:
id data
1 1.1
1 1.3
1 1.2
......
1 100
1 1.12 100
2 101
2 99
2 99.5
2 999
例表中ID1的平均值应该是1-1.5,但是有一个数据是100是不合法的,ID2同理,999的那一项数据偏离平均值过多不合法怎么通过SQL语句查出这种非法数据并删除呢 ######注:尽量一条SQL########
id data
1 1.1
1 1.3
1 1.2
......
1 100
1 1.12 100
2 101
2 99
2 99.5
2 999
例表中ID1的平均值应该是1-1.5,但是有一个数据是100是不合法的,ID2同理,999的那一项数据偏离平均值过多不合法怎么通过SQL语句查出这种非法数据并删除呢 ######注:尽量一条SQL########
解决方案 »
- 未能找到OLE DB提供程序'Micorsoft.JET.OLEDB.4.0'的注册表项
- sqlce3.5(wince下的sql server)不能执行update\insert\delete命令,为什么呢?
- 查出表里面的重复记录
- Windows 7系统 下安装SQL SERVER 2000 企业版 出现兼容问题,该怎么办?
- 存储时取出自动增长的id值的问题
- 删除数据记录
- 存储过程的返回问题,
- 这样的视图怎么定义!!!!一张表中有多列要用另外一张表中的实际值替换??
- sql server组件打包问题
- pb+sql serve2005r编的程序如何在别人电脑上直接运行(不装sql server)
- sql server2005安装问题
- 求个简单的设计
;with cte as(
select *,[avg]=avg(data) over (partition by id) from tabname
)
delete from cte where data<=[avg]-10 or data>=[avg]+10;
from [tb] t
where data > (select avg(data) from tb where id=t.id)