22,210
社区成员
发帖
与我相关
我的任务
分享
create table A(Address varchar(10),Aname varchar(10),Asex varchar(10))
insert into a values('上海','张三','男')
insert into a values('北京','李四','女')
insert into a values('深圳','王五','男')
insert into a values('上海','赵六','女')
insert into a values('北京','陈七','男')
insert into a values('上海','张三','男')
go
select * from a as b order by
isnull((select count(Address) from a where Address=b.Address),0) desc ,
isnull((select count(Aname) from a where Aname=b.Aname),0) desc ,
isnull((select count(Asex) from a where Asex=b.Asex),0) desc
/*
Address Aname Asex
---------- ---------- ----------
上海 张三 男
上海 张三 男
上海 赵六 女
北京 陈七 男
北京 李四 女
深圳 王五 男
(6 行受影响)
*/
1> select t.*
2> from a t inner join (select Aname,count(*) as cnt from a group by Aname) b
3> on t.Aname=b.Aname
4> order by cnt desc,t.Aname
5> go
Address |Aname |Asex
----------|----------|----------
上海 |张三 |男
上海 |张三 |男
北京 |陈七 |男
北京 |李四 |女
深圳 |王五 |男
上海 |赵六 |女
(6 rows affected)
1>
select
*
from
a t
order by
isnull((select count(1) from a where Address=t.Address),0)desc,
isnull((select count(1) from a where Aname=t.Aname),0)desc,
isnull((select count(1) from a where Asex=t.Asex),0)desc
1> select * from a
2> go
Address |Aname |Asex
----------|----------|----------
上海 |张三 |男
北京 |李四 |女
深圳 |王五 |男
上海 |赵六 |女
北京 |陈七 |男
上海 |张三 |男
(6 rows affected)
1> select Address,Aname,Asex
2> from a t
3> order by (select count(*) from a where Aname= t.Aname) desc,Aname
4> go
Address |Aname |Asex
----------|----------|----------
上海 |张三 |男
上海 |张三 |男
北京 |陈七 |男
北京 |李四 |女
深圳 |王五 |男
上海 |赵六 |女
(6 rows affected)
1>
--抄袭乌龟数据
create table a(Address varchar(10),Aname varchar(10),Asex varchar(10))
insert into a values('上海','张三','男')
insert into a values('北京','李四','女')
insert into a values('深圳','王五','男')
insert into a values('上海','赵六','女')
insert into a values('北京','陈七','男')
insert into a values('上海','张三','男')
go
select
*
from
a t
order by
isnull((select count(1) from a where Address=t.Address),0)desc,
isnull((select count(1) from a where Aname=t.Aname),0)desc,
isnull((select count(1) from a where Asex=t.Asex),0)desc
/*Address Aname Asex
---------- ---------- ----------
上海 张三 男
上海 张三 男
上海 赵六 女
北京 陈七 男
北京 李四 女
深圳 王五 男
(6 行受影响)
*/
drop table a
select a.*
from a
left join
(select Address,count(1)px1 from a group by Address)b
on a.Address=b.Address
left join
(select Aname,count(1)px2 from a group by Aname)c
on a.Aname=c.Aname
left join
(select Asex,count(1)px3 from a group by Asex)d
on a.Asex=b.Asex
order by
b.px1 desc,
c.px2 desc,
d.px3
select
*
from
tb t
order by
isnull((select count(1) from tb where Address=t.Address),0)desc,
isnull((select count(1) from tb where Aname=t.Aname),0)desc,
isnull((select count(1) from tb where Asex=t.Asex),0)desc
create table A(Address varchar(10),Aname varchar(10),Asex varchar(10))
insert into a values('上海','张三','男')
insert into a values('北京','李四','女')
insert into a values('深圳','王五','男')
insert into a values('上海','赵六','女')
insert into a values('北京','陈七','男')
insert into a values('上海','张三','男')
go
select a.* from a
left join
(select Address , count(1) cnt from a group by Address) b
on a.Address = b.Address
left join
(select Aname , count(1) cnt from a group by Aname) c
on a.Aname = c.Aname
left join
(select Asex , count(1) cnt from a group by Asex) d
on a.Asex = d.Asex
order by b.cnt desc , c.cnt desc , d.cnt desc
drop table a
/*
Address Aname Asex
---------- ---------- ----------
上海 张三 男
上海 张三 男
上海 赵六 女
北京 陈七 男
北京 李四 女
深圳 王五 男
(所影响的行数为 6 行)
*/
select t.*
from 表A t inner join (select Aname,count(*) as cnt from 表A group by Aname) b
on t.Aname=b.Aname
order by cnt desc,a.Aname
select *
from ta a
order by isnull((select count(*) from ta where Address=a.Address),0)desc,
isnull((select count(*) from ta where Aname=a.Aname),0)desc,
isnull((select count(*) from ta where Asex=a.Asex),0)desc
select Address,Aname,Asex
from 表A t
order by (select count(*) from 表A where Aname= t.Aname) desc,Aname