Sql 使用top x count查询作为where子句显示所有符合条件的记录
我数到了前2名 我的表中有这些数据Sql 使用top x count查询作为where子句显示所有符合条件的记录,sql,sql-server,ssms,Sql,Sql Server,Ssms,我数到了前2名 我的表中有这些数据 Name Age price visited size Jon 34 53 2018-01-01 9 Don 22 70 2018-03-01 15 Pete 76 12 2018-11-09 7 Jon 34 55 2018-09-13 9 Paul 90 64 2018-07-08 6 Pete 76 31 2018-03-25 7 Jon 75 34 2018-06-
Name Age price visited size
Jon 34 53 2018-01-01 9
Don 22 70 2018-03-01 15
Pete 76 12 2018-11-09 7
Jon 34 55 2018-09-13 9
Paul 90 64 2018-07-08 6
Pete 76 31 2018-03-25 7
Jon 75 34 2018-06-06 8
select top 2
name,
count(name) as cnt
from
tbl1
group by name
order by cnt desc
返回我的前两个名字
Jon 3
Pete 2
随着查询的运行,此名称将动态更改,具体取决于访问次数最多的用户(这非常简单,因为实际表中有1000个条目)
我想做的是,然后使用该查询的结果来获得以下内容,所有这些内容都需要在一个查询中完成
Name Age price visited size
Jon 34 53 2018-01-01 9
Jon 34 55 2018-09-13 9
Jon 75 34 2018-06-06 8
Pete 76 12 2018-11-09 7
Pete 76 31 2018-03-25 7
总之,计算访问次数最多的人,然后显示这些姓名下的所有记录
提前感谢这里有一个选项使用中的
:
select *
from yourtable
where name in (
select top 2 name
from yourtable
group by name
order by count(*) desc
)
order by name
在
中使用有一个选项:
select *
from yourtable
where name in (
select top 2 name
from yourtable
group by name
order by count(*) desc
)
order by name
可能的副本