日期:2014-05-18  浏览次数:20422 次

求一SQL语句,关于分组显示的,谢谢!
有以下数据
tel           qy
12344       gl
15468       gl
46447       lg
45647       lg
78767       xa
31234       xa
现在想要取出qy相同的号码的一半(不要求是上一半还是下一半),最终的显示结果类似于下表
tel           qy
15468       gl
45647       lg
78767       xa

请各位高手帮忙,谢谢!


------解决方案--------------------
create table #t
(tel varchar(10), qy varchar(10))
insert into #t
select '12344 ' , 'gl ' union all
select '15468 ' , 'gl ' union all
select '45660 ' , 'gl ' union all
select '85232 ' , 'gl ' union all
select '46447 ' , 'lg ' union all
select '45647 ' , 'lg ' union all
select '78767 ' , 'xa ' union all
select '31234 ' , 'xa '


select * from #t a
where (select count(1) from #t where qy=a.qy and tel> a.tel) <(select count(1)from #t where qy=a.qy)/2


tel qy
---------- ----------
45660 gl
85232 gl
46447 lg
78767 xa

(4 row(s) affected)


這樣才可以顯示每一組中數據的一半