SQL 查询总结及技巧

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)

 

转载于:https://www.cnblogs.com/peijihui/archive/2009/02/19/1394242.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值