如何确定工资大于平均工资

sla*_*fik 1 sql

例如,我有下表

id  name city   salary  dept 
Run Code Online (Sandbox Code Playgroud)

我想要选择所有大于平均水平的工资

谢谢

Joh*_*nck 15

尝试这样的事情:

SELECT salary WHERE salary > (SELECT AVG(salary) FROM *)
Run Code Online (Sandbox Code Playgroud)


Pra*_*obo 6

假设它是mysql,只有以下两个工作.(我使用临时表,因此名称与您的名称不同)

select * from b  where ref > (select avg(ref) from b);
select * from b  having ref > (select avg(ref) from b);
Run Code Online (Sandbox Code Playgroud)

这不 - select * from b having ref > avg(ref);

我试过的一些问题 -

mysql> select * from b;
+------+------------+------+
| id   | d2         | ref  |
+------+------------+------+
|  300 | 2010-12-12 |    3 |
|  300 | 2011-12-12 |    2 |
|  300 | 2012-12-12 |    1 |
|  400 | 2011-12-12 |    1 |
+------+------------+------+
4 rows in set (0.00 sec)

mysql> select * from b  having ref > avg(ref);
+------+------------+------+
| id   | d2         | ref  |
+------+------------+------+
|  300 | 2010-12-12 |    3 |
+------+------------+------+
1 row in set (0.00 sec)

mysql> select * from b  having ref > (select avg(ref) from b);
+------+------------+------+
| id   | d2         | ref  |
+------+------------+------+
|  300 | 2010-12-12 |    3 |
|  300 | 2011-12-12 |    2 |
+------+------------+------+
2 rows in set (0.02 sec)

mysql> select * from b  where ref > (select avg(ref) from b);
+------+------------+------+
| id   | d2         | ref  |
+------+------------+------+
|  300 | 2010-12-12 |    3 |
|  300 | 2011-12-12 |    2 |
+------+------------+------+
2 rows in set (0.00 sec)

mysql> select *,avg(ref) from b  having ref > avg(ref);
+------+------------+------+----------+
| id   | d2         | ref  | avg(ref) |
+------+------------+------+----------+
|  300 | 2010-12-12 |    3 |   1.7500 |
+------+------------+------+----------+
1 row in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)