列出百分比大于某个数字的所有员工

问题描述 投票:1回答:4

如何列出百分比大于某个数字的所有员工,百分比根据最高工资计算。

例:

如果最高工资为100且员工工资为50,则百分比应为50。

这是我试过的:

select (salary/Max(salary)*100) as percentage from test.employeetable
where percentage > 75;

Table

我得到的错误是:

'where子句中的未知列'百分比'

mysql sql
4个回答
1
投票

首先获取变量中的最大值,然后选择相关结果

select @max := max(salary) from test.employeetable;
select (salary/@max*100) as pc from test.employeetable having pc > 75;

请注意having而不是where

您也可以显示相关薪水(等等)

select @max := max(salary) from test.employeetable;
select salary,(salary/@max*100) as pc from test.employeetable having pc > 75;

不使用变量

select (salary/m.mx*100) as pc from test.employeetable, 
(select max(salary) as mx from test.employeetable) as m
having pc > 75;

2
投票

尝试类似的东西;

select * from (
select (salary / (select max(salary) from test.employeetable) * 100) as percentage from test.employeetable) Records
where percentage > 75;

0
投票
Select (salary/Max(salary)*100) as percentage 
from test.employeetable 
where (salary/Max(salary)*100) > 75;  

在MySql中,你不能在where子句中使用“as”


-1
投票

使用子查询

SELECT *
FROM (
  SELECT (salary / MAX(salary) * 100) AS percentage
  FROM test.employeetable
) x
WHERE percentage > 75
© www.soinside.com 2019 - 2024. All rights reserved.