怎么样查询多个top1?
比如表里有个字段 c1,里面是多个可能有重复的值,例如
1001
1002
1001
1003
1002
1003
……
这样的
现在我想用 select top 1 * from tb where c1 in (……)的方式,把每个c1值的第一个记录给取出来。
该怎么写?
[解决办法]
把每个c1值的第一个记录给取出来????什么意思
[解决办法]
那你这个对应的结果是什么
[解决办法]
;with cte as (select row_number() over(partition by c1 order c1)pid,* from tb )
select * from cte where pid=1
[解决办法]
取每个分组后的第一条数据吗?
参考
[解决办法]
记录数最大的c1
select top 1 c1 from table1 group by c1 order by count(1) desc
select top 1 * from table1 as a order by (select count(1) from table1 where c1=a.c1) desc