这条sql该如何写 
a  b  c   d   e  
24 43 1   34  5
24 43 1   3  45
24 43 1   2   2
25 88 2   43  2
25 88 2   32  32
25 88 2   23  1

我需要把这个表中的 
相同的a 相同的b 和相同的c 一般就3行(也仅仅3行)形成一个分组
如上表 当a=24, b=43,c=1  有3行,那么他形成一个分组
       当a=25,b=88,c=2  有3行,那么他形成一个分组
如果仅仅2行3个字段相同,不需要他形成分组 ,可以不显示这个语句该如何写 

解决方案 »

  1.   

    简单点,就是把a  b c的值同时相等的行放在一起 ,形成一个分组 (这些行散列在各行 ,id是自增长列)
    现在简单点 只要求能a  b c的值分组有2行以上的显示出来就可以啦 
      

  2.   

    分组  也就是 group by a b c (现在要求必须有2行以上的分组才显示)
      

  3.   

    建议建些不被包含的例子,否则你的例子,估计 select * from yourtable order by a,b,c也是符合你的要求的。
      

  4.   

    下面只是猜,能不能满足你的要求就看运气了。mysql> select * from t_liyihongcug;
    +------+------+------+------+------+
    | a    | b    | c    | d    | e    |
    +------+------+------+------+------+
    |   24 |   43 |    1 |   34 |    5 |
    |   24 |   43 |    1 |    3 |   45 |
    |   24 |   43 |    1 |    2 |    2 |
    |   25 |   88 |    2 |   43 |    2 |
    |   25 |   88 |    2 |   32 |   32 |
    |   25 |   88 |    2 |   23 |    1 |
    +------+------+------+------+------+
    6 rows in set (0.00 sec)mysql> select * from t_liyihongcug
        -> where (a,b,c) in (
        -> select a,b,c from t_liyihongcug
        -> group by a,b,c
        -> having count(*)>2
        -> )
        -> order by a,b,c;
    +------+------+------+------+------+
    | a    | b    | c    | d    | e    |
    +------+------+------+------+------+
    |   24 |   43 |    1 |   34 |    5 |
    |   24 |   43 |    1 |    3 |   45 |
    |   24 |   43 |    1 |    2 |    2 |
    |   25 |   88 |    2 |   43 |    2 |
    |   25 |   88 |    2 |   32 |   32 |
    |   25 |   88 |    2 |   23 |    1 |
    +------+------+------+------+------+
    6 rows in set (0.00 sec)mysql>