select count(*) from @TempTable where zongfeng > a.zongfeng
这是一个汇总。条件是按照大于某个zongfeng值。而这个zongfeng值就是有表检索中的每一行中数据来提供的。
意思就是:检索每一行数据,对取出的每个zongfeng在自身表中统计比它大的数据有多少个,可以说是个排名情况。
这是一个汇总。条件是按照大于某个zongfeng值。而这个zongfeng值就是有表检索中的每一行中数据来提供的。
意思就是:检索每一行数据,对取出的每个zongfeng在自身表中统计比它大的数据有多少个,可以说是个排名情况。
mingci...from @temptable a
=====>含义:‘在所有记录中总分比自己大的有几人’作为‘mingci’字段
where zongfeng(所有人) > a.zongfeng(自己)
insert into @TempTable select '0010','lixue',500 union
select '0015','zhansi',456 union
select '0014','heyao',512 union
select '0016','woshi',423
--
select (select count(*) from @TempTable as b
where b.zongfeng > a.zongfeng) as
--
mingci ,xuehao,xingming,zongfeng from @TempTable as a
order by zongfeng desc --这样子是不是比较好理解了,其实这个自连接已经是相当于从两个表里查数据库了在查a表数据的同时,我也在统计b表中的数据,b表统计的条件是zongfeng大于当前a表中当前记录的zongfeng值,也就是当前的a.zongfeng,
意思就是相对于a表的每条记录,都要做一下
select count(*) from @TempTable as b
where b.zongfeng > a.zongfeng