count(distinct date,name,id) 查出的结果是不是date name id 并集取得的唯一值???即distinct 是否同时作用在date,name,id上???
如果不是该如何让distinct作用在三者身上???

解决方案 »

  1.   

    count(distinct date,name,id) 多个列值同时组合成的唯一性
      

  2.   

    distinct date,name,id:是三个字段的唯一
    count(distinct concat(date,name,id))
      

  3.   


    一楼答错了。应该是。是三个结果的综合唯一。mysql> select * from t_dawenwen1128;
    +-------+--------+---------+
    | c_id  | c_name | c_namef |
    +-------+--------+---------+
    | 10001 | 沙     |   10.12 |
    | 10001 | 石     |   10.12 |
    | 10001 | 煤     |   10.12 |
    | 10002 | 沙     |   10.12 |
    | 10002 | 水     |   10.12 |
    | 10002 | 盐     |   10.12 |
    +-------+--------+---------+
    6 rows in set (0.00 sec)mysql> select count(distinct c_id,c_namef)
        -> from t_dawenwen1128;
    +------------------------------+
    | count(distinct c_id,c_namef) |
    +------------------------------+
    |                            2 |
    +------------------------------+
    1 row in set (0.00 sec)mysql>
      

  4.   


    count(distinct concat(date,name,id)) 这句是什么意思??
      

  5.   

    示例:mysql> select * from tb_1a;
    +------+------+------+
    | date | name | id   |
    +------+------+------+
    | 1    | 2    |    1 | 
    | 1    | 3    |    2 | 
    | 1    | 3    |    2 | 

    | 1    | 3    |    3 | 
    | 2    | 4    |    5 | 
    +------+------+------+
    5 rows in set (0.00 sec)mysql> select count(distinct date,name,id) from tb_1a;
    +------------------------------+
    | count(distinct date,name,id) |
    +------------------------------+
    |                            4 | 
    +------------------------------+
    1 row in set (0.02 sec)mysql> 
      

  6.   

    即将三个字段结合为一个结果,再对此结果distinct
      

  7.   

    mysql> select count(distinct c_id,c_name,c_namef)
        -> from t_dawenwen1128;
    +-------------------------------------+
    | count(distinct c_id,c_name,c_namef) |
    +-------------------------------------+
    |                                   6 |
    +-------------------------------------+
    1 row in set (0.00 sec)mysql>