1、如何查找一个表中所有记录数大于2的记录,比如统计表tablename中按“字段”记录数大于2的所有记录
select * from tablename where (select count(*) from tablename as a where a.字段=tablename.字段)>2
或 select * from (select 字段,count(*) from tablename group by 字段 having count(*)>1) as a inner join tablename as b on b.字段=a.字段
2、分组排序,获得分组内部每条记录的按大小序号
(1)、分组,并获得每个分组内排名前10的记录
create table #temp_8(id int identity(1,1),时间区间 INT,线路标识 int,方向编号 INT,断面客流量 int)
insert into #temp_8(时间区间,线路标识,方向编号,断面客流量) select 时间区间,线路标识,方向编号,断面客流量 from #temp_7 as a where 断面客流量 in (select top 10 断面客流量 from #temp_7 where 时间区间=a.时间区间 order by 断面客流量 desc) order by 时间区间
(2)、获得分组内每个记录的排名
select 时间区间,线路标识,方向编号,断面客流量,DENSE_RANK() OVER (PARTITION BY 时间区间 ORDER BY 断面客流量,线路标识,方向编号 desc) from #temp_8
注意:DENSE_RANK() OVER (PARTITION BY 时间区间 ORDER BY 断面客流量,线路标识,方向编号 desc)