1. select * from 表 t
where 年龄 in(select distinct top 2 年龄
from 表
where 省份=t.省份
order by 年龄 desc)2. delete t
from 表 t
where exists(select 1
from 表
where 重复字段=t.重复字段
and 唯一字段<t.唯一字段)
where 年龄 in(select distinct top 2 年龄
from 表
where 省份=t.省份
order by 年龄 desc)2. delete t
from 表 t
where exists(select 1
from 表
where 重复字段=t.重复字段
and 唯一字段<t.唯一字段)
1.
SELECT 省份,MAX(姓名) 姓名,年龄 FROM 表 WHERE 省份+CONVERT(VARCHAR(20),年龄) IN( SELECT 省份+CONVERT(VARCHAR(20),MAX(年龄)) FROM 表 WHERE 省份+CONVERT(VARCHAR(20),年龄) NOT IN
( SELECT 省份+CONVERT(VARCHAR(20),MAX(年龄)) FROM 表 GROUP BY 省份) GROUP BY 省份 UNION SELECT 省份+CONVERT(VARCHAR(20),MAX(年龄)) FROM 表 GROUP BY 省份
) GROUP BY 省份,年龄
delete t where 唯一字段 not in(select max(唯一字段) from 表 group by 重复字段)
SELECT * INTO #1 FROM 表 WHERE 省份+CONVERT(VARCHAR(3),年龄) IN (SELECT 省份+CONVERT(VARCHAR(3),MAX(年龄)) FROM 表 GROUP BY 省份)INSERT #1 SELECT * FROM 表 WHERE 省份+CONVERT(VARCHAR(3),年龄) IN(SELECT 省份+CONVERT(VARCHAR(3),MAX(年龄)) FROM 表 WHERE 省份+CONVERT(VARCHAR(3),年龄) NOT IN(SELECT 省份+CONVERT(VARCHAR(3),年龄) FROM #1) GROUP BY 省份)SELECT * FROM #1 WHERE 唯一字段 IN(SELECT MAX(唯一字段) FROM #1 GROUP BY 省份,年龄)还慢的话可以在年龄字段加个索引