这个sql语句怎么写?

来源:百度知道 编辑:UC知道 时间:2024/05/06 07:16:21
MSSQL

表testtable
有如下字段
id,自增,主键
name,必添字段
dept,取值为 1,2,3,4,5......
salary,有高有低,但没有重复值

现在需要取得每个dept中salary最高的10个人的详细信息(每个dept至少10人)

怎样用一条sql语句查询出来?
谢谢,不过我有一个500万行的类似结构的一个表,要优化。这么做效率太低了。
请大家推荐其他解决办法,不一定一条SQL语句

下面这样写应该可以,你试试看吧。

select * from testtable as a
where salary in(select top 10 salary from testtable where dept=a.dept order by salary desc)

-----------------------------------------------------------
500万行?这么多的数据,可能用什么方法效率都不会太高吧?
你的这个问题,用多条sql查询,得用临时表来保存中间查询结果吧,这样产生一大堆临时表,效率也高不起来啊。

支持transger
关联查询的语句效率已经是最高了

楼上的语句高!

楼主不给分就太没天理了。

44