表:sales
ID NAME SALES
----- ---- ---------
1 a 132
2 a 143
3 b 150
4 b 198
5 a 150
6 c 150
7 c 135
8 c 148
9 d 156
10 d 146
查出每组name大于平均值的列,这里name列a的值有132,143,150平均值是142,哪么只查出143和150
查出的结果:
ID NAME SALES
----- ---- ---------
2 a 143
4 b 198
5 a 150
6 c 150
8 c 148
9 d 156
答案如下:
select *
from sales a
where a.sales>(
select avg(sales) from sales b where b.name=a.name group by name
)
针对名为'sales'的表,查询每个'name'分组中'SALES'列值大于该组平均值的记录。例如,'name'为'a'的记录平均值为142,因此只返回'SALES'值为143和150的记录。查询结果包括ID、NAME和SALES三列,显示了符合条件的所有记录。
543

被折叠的 条评论
为什么被折叠?



