昨天碰到一道题,当时没搞定回来想了想才解决。
表格t各字段分别是A,B,C,D,E,要求筛选按E分组后各组中D值大于D的平均数的所有行。
Group by 'E'
和Where|Having D>avg(D)
肯定是要用到的,但是分组后筛选ABC字段也需要保留。试验了下,用了Group by
之后的Select A,B,C From t Group by……
只会对各组的第一行过滤后保存。
比如下面的例子
- 表fruits的数据 mysql> select * from fruits order by sid;
sid | fname | fprice |
---|---|---|
101 | apple | 5.30 |
101 | blackberry | 15.00 |
102 | orange | 10.30 |
102 | melon | 8.50 |
103 | lemon | 6.10 |