本帖最后由 woshimajia0005 于 2010-07-13 18:13:24 编辑

解决方案 »

  1.   

    例如上面 ec 为 WNZ 的有很多条, 选了3条后,就选下一个 ec  CGO
      

  2.   

    具体SQL如下:--
    -- 表的结构 `newtable`
    --CREATE TABLE IF NOT EXISTS `newtable` (
      `id` int(10) unsigned NOT NULL DEFAULT '0',
      `sc` varchar(10) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
      `ec` varchar(10) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
      `day` varchar(12) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
      `price` int(10) NOT NULL,
      `discount` varchar(6) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1;--
    -- 转存表中的数据 `newtable`
    --INSERT INTO `newtable` (`id`, `sc`, `ec`, `day`, `price`, `discount`) VALUES
    (3258, 'SHA', 'NKG', '2010-07-15', 310, '61'),
    (4254, 'SHA', 'NKG', '2010-07-18', 310, '61'),
    (3257, 'SHA', 'NKG', '2010-07-14', 310, '61'),
    (4255, 'SHA', 'NKG', '2010-07-19', 310, '61'),
    (914, 'SHA', 'WNZ', '2010-07-29', 330, '71'),
    (915, 'SHA', 'WNZ', '2010-07-30', 330, '71'),
    (916, 'SHA', 'WNZ', '2010-07-31', 330, '71'),
    (976, 'SHA', 'WNZ', '2010-07-28', 330, '71'),
    (1190, 'SHA', 'WNZ', '2010-07-25', 330, '71'),
    (1192, 'SHA', 'WNZ', '2010-07-27', 330, '71'),
    (1635, 'SHA', 'WNZ', '2010-07-24', 330, '71'),
    (1191, 'SHA', 'WNZ', '2010-07-26', 330, '71'),
    (191, 'SHA', 'CGO', '2010-09-05', 350, '57'),
    (145, 'SHA', 'CGO', '2010-09-04', 350, '57'),
    (144, 'SHA', 'CGO', '2010-09-03', 350, '57'),
    (66, 'SHA', 'CGO', '2010-08-30', 350, '57'),
    (69, 'SHA', 'CGO', '2010-09-02', 350, '57'),
    (64, 'SHA', 'CGO', '2010-08-28', 350, '57'),
    (65, 'SHA', 'CGO', '2010-08-29', 350, '57'),
    (68, 'SHA', 'CGO', '2010-09-01', 350, '57'),
    (67, 'SHA', 'CGO', '2010-08-31', 350, '57'),
    (192, 'SHA', 'CGO', '2010-09-06', 350, '57'),
    (193, 'SHA', 'CGO', '2010-09-07', 350, '57'),
    (1186, 'SHA', 'CGO', '2010-08-24', 350, '57'),
    (1184, 'SHA', 'CGO', '2010-08-22', 350, '56'),
      

  3.   

    mysql> select * from newtable;
    +------+-----+-----+------------+-------+----------+
    | id   | sc  | ec  | day        | price | discount |
    +------+-----+-----+------------+-------+----------+
    | 3258 | SHA | NKG | 2010-07-15 |   310 | 61       |
    | 4254 | SHA | NKG | 2010-07-18 |   310 | 61       |
    | 3257 | SHA | NKG | 2010-07-14 |   310 | 61       |
    | 4255 | SHA | NKG | 2010-07-19 |   310 | 61       |
    |  914 | SHA | WNZ | 2010-07-29 |   330 | 71       |
    |  915 | SHA | WNZ | 2010-07-30 |   330 | 71       |
    |  916 | SHA | WNZ | 2010-07-31 |   330 | 71       |
    |  976 | SHA | WNZ | 2010-07-28 |   330 | 71       |
    | 1190 | SHA | WNZ | 2010-07-25 |   330 | 71       |
    | 1192 | SHA | WNZ | 2010-07-27 |   330 | 71       |
    | 1635 | SHA | WNZ | 2010-07-24 |   330 | 71       |
    | 1191 | SHA | WNZ | 2010-07-26 |   330 | 71       |
    |  191 | SHA | CGO | 2010-09-05 |   350 | 57       |
    |  145 | SHA | CGO | 2010-09-04 |   350 | 57       |
    |  144 | SHA | CGO | 2010-09-03 |   350 | 57       |
    |   66 | SHA | CGO | 2010-08-30 |   350 | 57       |
    |   69 | SHA | CGO | 2010-09-02 |   350 | 57       |
    |   64 | SHA | CGO | 2010-08-28 |   350 | 57       |
    |   65 | SHA | CGO | 2010-08-29 |   350 | 57       |
    |   68 | SHA | CGO | 2010-09-01 |   350 | 57       |
    |   67 | SHA | CGO | 2010-08-31 |   350 | 57       |
    |  192 | SHA | CGO | 2010-09-06 |   350 | 57       |
    |  193 | SHA | CGO | 2010-09-07 |   350 | 57       |
    | 1186 | SHA | CGO | 2010-08-24 |   350 | 57       |
    | 1184 | SHA | CGO | 2010-08-22 |   350 | 56       |
    +------+-----+-----+------------+-------+----------+
    25 rows in set (0.00 sec)mysql> select *
        -> from newtable a
        -> where 3>(select count(*) from newtable where sc=a.sc and ec=a.ec and id<a.id);
    +------+-----+-----+------------+-------+----------+
    | id   | sc  | ec  | day        | price | discount |
    +------+-----+-----+------------+-------+----------+
    | 3258 | SHA | NKG | 2010-07-15 |   310 | 61       |
    | 4254 | SHA | NKG | 2010-07-18 |   310 | 61       |
    | 3257 | SHA | NKG | 2010-07-14 |   310 | 61       |
    |  914 | SHA | WNZ | 2010-07-29 |   330 | 71       |
    |  915 | SHA | WNZ | 2010-07-30 |   330 | 71       |
    |  916 | SHA | WNZ | 2010-07-31 |   330 | 71       |
    |   66 | SHA | CGO | 2010-08-30 |   350 | 57       |
    |   64 | SHA | CGO | 2010-08-28 |   350 | 57       |
    |   65 | SHA | CGO | 2010-08-29 |   350 | 57       |
    +------+-----+-----+------------+-------+----------+
    9 rows in set (0.05 sec)mysql>
      

  4.   

    参考下贴中的多种方法http://topic.csdn.net/u/20091231/16/2f268740-391e-40f2-a15e-f243b2c925ab.html
    [征集]分组取最大N条记录方法征集,及散分....