Mysql:获取某元素百分比最高的ID
Mysql: Get the ID where the percentage of certain element is the highest
我是 MYSQL 的新手,我关注 table。目标是 return 工程员工比例最高的部门 ID。
empID empName job deptID salary
68 Morris secretary 3 23000
69 Maria engineer 3 32000
45 Kelly engineer 7 37000
77 Hergot engineer 7 28000
66 Hess technician 7 32000
92 Mays engineer 7 45000
89 Williams engineer 12 36000
23 Smith programmer 13 35000
56 Herr janitor 13 26000
以下是我的无效代码:
SELECT deptID
FROM Employee
WHERE job = 'engineer'
GROUP BY deptID
order by (SELECT COUNT(*) FROM employee WHERE job='engineer')/count(*) DESC
期望的输出是:
deptID
12
因为对于deptID 12,它在一个员工中只有一个工程师,工程师比例最高。
在此先感谢您的帮助。
我认为这是解决方案。感谢您的回答。
SELECT
deptID, SUM(job = 'engineer') / COUNT(*) AS perc
FROM
Employee
GROUP BY deptID
ORDER BY perc DESC
LIMIT 1;
这是一块拼图...
SELECT deptid
, SUM(job = '?')/?????(*) * 100 pct
FROM my_table
GROUP BY ??;
假设没有关系那么我们就快完成了,否则还涉及另一个步骤
我是 MYSQL 的新手,我关注 table。目标是 return 工程员工比例最高的部门 ID。
empID empName job deptID salary
68 Morris secretary 3 23000
69 Maria engineer 3 32000
45 Kelly engineer 7 37000
77 Hergot engineer 7 28000
66 Hess technician 7 32000
92 Mays engineer 7 45000
89 Williams engineer 12 36000
23 Smith programmer 13 35000
56 Herr janitor 13 26000
以下是我的无效代码:
SELECT deptID
FROM Employee
WHERE job = 'engineer'
GROUP BY deptID
order by (SELECT COUNT(*) FROM employee WHERE job='engineer')/count(*) DESC
期望的输出是:
deptID
12
因为对于deptID 12,它在一个员工中只有一个工程师,工程师比例最高。
在此先感谢您的帮助。
我认为这是解决方案。感谢您的回答。
SELECT
deptID, SUM(job = 'engineer') / COUNT(*) AS perc
FROM
Employee
GROUP BY deptID
ORDER BY perc DESC
LIMIT 1;
这是一块拼图...
SELECT deptid
, SUM(job = '?')/?????(*) * 100 pct
FROM my_table
GROUP BY ??;
假设没有关系那么我们就快完成了,否则还涉及另一个步骤