我对sql中的编程很新,我遇到了一个问题。
我必须找到员工人数最多的部门,而且我不确定该怎么做。
我可以使用的表是
我认为最终结果会有列,Department_no和Max(Count(Department_no))但我不知道怎么会得到这个?或者有一种更简单的方法,我只是没有看到?
编辑到目前为止,我有
SELECT Department_no, Count(Department_no)
FROM ManagerOrBoss
GROUP BY Department_no;
但我理想情况下想要找到最大值,但SQL不断给出“无效使用组函数错误”。
答案 0 :(得分:2)
您可以在查询中使用count by group by子句,如下所示
select Department_no, count(Staff_id) from ManagerOrBoss
group by department_no
order by count(staff_id) limit 1
答案 1 :(得分:1)
您可以使用以下查询来获取具有较高编号的部门。工作人员
select a.Department_no ,count(a.Staff_id) maxstaffa
from table a
cross join (
select count(Staff_id) maxstaffb
from table
group by Department_no
order by maxstaffb desc
limit 1
) b
group by a.Department_no
having maxstaffa = b.maxstaffb
注意上面的查询可以返回多个部门,如果它们都具有相同的最大工作人员数
答案 2 :(得分:0)
一些更倾向于数据库的人可能会告诉我们为什么这是一个非常糟糕的主意,但为了获得成员数量最多的代表,我会做一些事情:
function generateCircles2(){
for(var i = 1; i<500; i++){
var position = Math.floor(Math.random() * 600);
var size = Math.floor(Math.random() * 8);
var circle = paper.circle(-50,position,size);
var time = Math.floor(Math.random() * 4000) + 2000;
circle.attr("fill", "#000000");
var cirAni = Raphael.animate({cy: position, cx: 850}, time);
circle.animate(cirAni.delay(100));
}
}
道歉,如果我的语法有点偏。我通常在MSSQL中工作,但试图将其改编为MySQL。