本文深入探讨了在MySQL中利用GROUP BY与ORDER BY实现数据分组,并详细介绍如何从每个分组中选取前若干记录的方法及其应用场景。
按某一字段分组取最大(小)值所在行的数据的代码如下:
数据示例如下:
```
name val memo
a 2 a2(a的第二个值)
a 1 a1–a的第一个值
a 3 a3:a的第三个值
b 1 b1–b的第一个值
b 3 b3:b的第三个值
b 2 b2b2b2b2
b 4 b4b4
b 5 b5b5b5b5b5
```
创建表并插入数据:
```sql
create table tb(name varchar(10), val int, memo varchar(20));
insert into tb values(a, 2, a2(a的第二个值));
insert into tb values(a, 1, a1–a的第一个值);
insert into tb values(a, 3, a3:a的第三个值);
insert into tb values(b, 1, b1–b的第一个值);
insert into tb values(b, 3, b3:b的第三个值);
insert into tb values(b, 2, b2b2b2b2);
insert into tb values(b, 4, b4b4);
insert into tb values(b, 5, b5b5b5b5b5);
```