mysql排序分组新问题(求救各位sql高手)

CREATE TABLE `tests` (
  `id` int(10) NOT NULL DEFAULT '0',
  `acst` int(10) DEFAULT NULL,
  `dates` datetime DEFAULT NULL,
  `counts` int(10) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

INSERT INTO tests VALUES ('1', '1', '2011-06-01 00:01:04', '2');
INSERT INTO tests VALUES ('2', '1', '2011-06-01 00:01:18', '2');
INSERT INTO tests VALUES ('3', '1', '2011-06-01 00:01:34', '5');
INSERT INTO tests VALUES ('4', '0', '2011-06-01 00:01:37', '6');
INSERT INTO tests VALUES ('5', '0', '2011-06-01 00:01:38', '3');
INSERT INTO tests VALUES ('6', '1', '2011-06-01 00:01:46', '10');
INSERT INTO tests VALUES ('7', '1', '2011-06-01 00:02:00', '6');
INSERT INTO tests VALUES ('8', '1', '2011-06-01 00:02:05', '3');
INSERT INTO tests VALUES ('9', '1', '2011-06-01 00:02:21', '5');
INSERT INTO tests VALUES ('10', '1', '2011-06-01 00:02:28', '21');
INSERT INTO tests VALUES ('11', '1', '2011-06-01 00:02:43', '7');
INSERT INTO tests VALUES ('12', '0', '2011-06-01 00:02:48', '7');
INSERT INTO tests VALUES ('13', '1', '2011-06-01 21:31:45', '3');

set @rowNo = 0;
select  
  (@rowNo := @rowNo + 1) as id,
  sum(counts) as `总记录数`,
  min(dates) as `开始时间`,
  case when max(dates)=min(dates) then NULL else max(dates) end as `结束时间`
from(
select *,
id-(select count(1) from tests where acst=t.acst and id<t.id) as groupid
from tests as t
) a
group by groupid,acst

/**
1 9 2011-06-01 00:01:04 2011-06-01 00:01:34
2 52 2011-06-01 00:01:46 2011-06-01 00:02:43
3 9 2011-06-01 00:01:37 2011-06-01 00:01:38
4 3 2011-06-01 21:31:45 NULL
5 7 2011-06-01 00:02:48 NULL
**/

之前FlySQL这种做法是id一个挨着一个排序就可以实现这种效果,现在顺序不挨着就排不出来了比如:
INSERT INTO tests VALUES ('1', '1', '2011-06-01 00:01:04', '2');
INSERT INTO tests VALUES ('3', '1', '2011-06-01 00:01:18', '2');
INSERT INTO tests VALUES ('5', '1', '2011-06-01 00:01:34', '5');
INSERT INTO tests VALUES ('6', '0', '2011-06-01 00:01:37', '6');
INSERT INTO tests VALUES ('7', '0', '2011-06-01 00:01:38', '3');
INSERT INTO tests VALUES ('10', '1', '2011-06-01 00:01:46', '10');
INSERT INTO tests VALUES ('11', '1', '2011-06-01 00:02:00', '6');
INSERT INTO tests VALUES ('13', '1', '2011-06-01 00:02:05', '3');
INSERT INTO tests VALUES ('14', '1', '2011-06-01 00:02:21', '5');
INSERT INTO tests VALUES ('17', '1', '2011-06-01 00:02:28', '21');
INSERT INTO tests VALUES ('20', '1', '2011-06-01 00:02:43', '7');
INSERT INTO tests VALUES ('30', '0', '2011-06-01 00:02:48', '7');
INSERT INTO tests VALUES ('32', '1', '2011-06-01 21:31:45', '3');

这种数据用上面那种方法就排列不出来,请教各位高手(先谢过了)注意是mysql版本的语法
最好是把数据调成
/**
1 9 2011-06-01 00:01:04 2011-06-01 00:01:34
2 52 2011-06-01 00:01:46 2011-06-01 00:02:43
3 9 2011-06-01 00:01:37 2011-06-01 00:01:38
4 3 2011-06-01 21:31:45 2011-06-01 00:02:48
5 7 2011-06-01 00:02:48 2011-06-01 21:31:45  
6 3 2011-06-01 21:31:45 NULL
**/ 
 
 

作者: horizon89   发布时间: 2011-06-02

自己顶。。。。期待高手。。。。。

作者: horizon89   发布时间: 2011-06-03

用INSERT INTO tests VALUES ('1', '1', '2011-06-01 00:01:04', '2');
INSERT INTO tests VALUES ('3', '1', '2011-06-01 00:01:18', '2');
INSERT INTO tests VALUES ('5', '1', '2011-06-01 00:01:34', '5');
INSERT INTO tests VALUES ('6', '0', '2011-06-01 00:01:37', '6');
INSERT INTO tests VALUES ('7', '0', '2011-06-01 00:01:38', '3');
INSERT INTO tests VALUES ('10', '1', '2011-06-01 00:01:46', '10');
INSERT INTO tests VALUES ('11', '1', '2011-06-01 00:02:00', '6');
INSERT INTO tests VALUES ('13', '1', '2011-06-01 00:02:05', '3');
INSERT INTO tests VALUES ('14', '1', '2011-06-01 00:02:21', '5');
INSERT INTO tests VALUES ('17', '1', '2011-06-01 00:02:28', '21');
INSERT INTO tests VALUES ('20', '1', '2011-06-01 00:02:43', '7');
INSERT INTO tests VALUES ('30', '0', '2011-06-01 00:02:48', '7');
INSERT INTO tests VALUES ('32', '1', '2011-06-01 21:31:45', '3');

数据,要求结果是什么

作者: WWWWA   发布时间: 2011-06-03