MySQL查询获取数据
我有一张桌子MySQL查询获取数据,mysql,Mysql,我有一张桌子 objectId | DeptID | workDate | percentage ----------------------------------------------------------- 1 1 06/07/16 10:10:10 10% 2 1 07/07/16 11:11:10 20% 3 2 06/07/16 0
objectId | DeptID | workDate | percentage
-----------------------------------------------------------
1 1 06/07/16 10:10:10 10%
2 1 07/07/16 11:11:10 20%
3 2 06/07/16 09:10:10 5%
4 2 07/07/16 08:10:10 3%
5 3 06/07/16 10:10:10 15%
6 4 07/07/16 11:10:10 20%
您能帮我找到一个sql查询来获取条件吗,
若我给输入2,那个么结果查询应该返回前4行,这意味着2个部门
预期产出:
objectId | DeptID | workDate | percentage
-----------------------------------------------------------
1 1 06/07/16 10:10:10 10%
2 1 07/07/16 11:11:10 20%
3 2 06/07/16 09:10:10 5%
4 2 07/07/16 08:10:10 3%
objectId | DeptID | workDate | percentage
----------------------------------------------------------
1 1 06/07/16 10:10:10 10%
2 1 07/07/16 11:11:10 20%
3 2 06/07/16 09:10:10 5%
4 2 07/07/16 08:10:10 3%
5 3 06/07/16 10:10:10 15%
6 4 07/07/16 11:10:10 20%
若我给输入4,那个么结果查询应该返回前4行,这意味着4个部门
预期产出:
objectId | DeptID | workDate | percentage
-----------------------------------------------------------
1 1 06/07/16 10:10:10 10%
2 1 07/07/16 11:11:10 20%
3 2 06/07/16 09:10:10 5%
4 2 07/07/16 08:10:10 3%
objectId | DeptID | workDate | percentage
----------------------------------------------------------
1 1 06/07/16 10:10:10 10%
2 1 07/07/16 11:11:10 20%
3 2 06/07/16 09:10:10 5%
4 2 07/07/16 08:10:10 3%
5 3 06/07/16 10:10:10 15%
6 4 07/07/16 11:10:10 20%
非常感谢。您似乎总是从第一个id开始,并且DEPTID可以方便地分组,所以也许这样就可以了
drop table if exists t;
create table t(id int auto_increment primary key, deptid int);
insert into t (deptid) values
(1),(1),(2),(2),(3),(4);
select id,deptid
from
(
select t.id,t.deptid,s.maxid,s.rn
from t
join
(
select deptid, max(id) maxid,@rn:=@rn+1 rn
from t,(Select @rn:=0) r
group by deptid
) s
on s.deptid = t.deptid
) u
where u.rn <= 2;