我有一个数据表,有一个字段为QQ,就是用户注册的QQ号,我想这样排列数据,QQ字段重复最多的排前面。
因为有很多帐号是经常发广告的,每天注册不同的帐号来发广告,但是QQ号填写的却是一个,我想一次性把这些帐号全部清理出来,有很多QQ,该如何实现呢?这样,QQ字段重复记录越多的,就会排前面,我就很清楚的可以找出哪些QQ号是来发广告的,我就可以修改程序,下次这些人注册的时候,直接屏蔽帐号或者不让其注册了,因为对方是注册机。注意:不是一两个QQ,而是大量的,所以我人工检查有点麻烦。
因为有很多帐号是经常发广告的,每天注册不同的帐号来发广告,但是QQ号填写的却是一个,我想一次性把这些帐号全部清理出来,有很多QQ,该如何实现呢?这样,QQ字段重复记录越多的,就会排前面,我就很清楚的可以找出哪些QQ号是来发广告的,我就可以修改程序,下次这些人注册的时候,直接屏蔽帐号或者不让其注册了,因为对方是注册机。注意:不是一两个QQ,而是大量的,所以我人工检查有点麻烦。
order by (
select count(*) from 表 where 帐号=t.帐号
)
declare @t table
(
account varchar(20),
qq varchar(10)
)insert @t select 'abc1',123456
union all select 'abc2',123456
union all select 'abc3',123456
union all select 'bbb',23456
union all select 'ccc2',3546789
union all select 'bbb',23456
union all select 'ccc1',3546789
union all select 'ddd',46557877select
a.*
from @t a
join(
select
qq,
count(*) as countnum
from @t
group by qq
)b
on b.qq = a.qq
order by b.countnum desc/**
abc1 123456
abc2 123456
abc3 123456
bbb 23456
bbb 23456
ccc1 3546789
ccc2 3546789
ddd 46557877
**/
order by (select count(*) from tb where QQ=a.QQ)
SELECT *
FROM (SELECT qq, [count] = COUNT(*)
FROM dv_user
GROUP BY qq) K
ORDER BY [count] DESC这样就对了,谢谢!