MySQL的获得第一和最后一行的数据分组
问题描述:
我有一个事件表,MySQL的获得第一和最后一行的数据分组
| id | title | date |
| 1 | party | 2011-02-02 |
| 2 | party | 2011-02-03 |
| 3 | party | 2011-02-04 |
| 4 | party | 2011-02-05 |
| 5 | brunch | 2011-05-20 |
| 6 | brunch | 2011-05-21 |
| 7 | brunch | 2011-05-22 |
| 8 | brunch | 2011-05-23 |
我想要传送数据这种结构
| id | title | start | finish |
| 1 | party | 2011-02-02 | 2011-02-05 |
| 2 | brunch | 2011-05-20 | 2011-05-23 |
什么是最好的办法吗?
答
没有新的ID:
SELECT title, MIN(date) AS start, MAX(date) AS finish
FROM event
GROUP BY title
要生成一个新的ID使用计数器:
SET @counter = 0;
SELECT ((@counter := (@counter+1))) AS id, title, MIN(date) AS start, MAX(date) AS finish
FROM event
GROUP BY title