例如,我有下表
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)
假设它是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)
| 归档时间: |
|
| 查看次数: |
73124 次 |
| 最近记录: |