有张表记录了用户的点击事件,现在我要计算多少用户点击了(重复的不算),有两个字段,一个是subscriber_id一个是list_id,只有subscriber_id和list_id都一样才能代表同一个人,请问要如何统计呢?

解决方案 »

  1.   

    select count(distinct list_id) from tablename where list_id=subscriber_idgroup by subscriber_id
      

  2.   

    结构大概是id,subscriber_id,list_id,click_count,first_click_time,last_click_time
      

  3.   

    select count(*) from tablename group by subscriber_id,list_id order by null
      

  4.   

    select count(*) as iddd from table_name where list_id=subscriber_id group by subscriber_id
      

  5.   

    select count(1) from table1 where list_id = subscriber_id group by list_id,subscriber_id;
      

  6.   

    可能是我表达的有问题
    一个list可以有多个subscriber
    所以比如有如下记录:
    list_id = 1,subscriber_id = 1
    list_id = 1,subscriber_id = 1
    list_id = 2,subscriber_id = 1
    list_id = 3,subscriber_id = 1
    list_id = 3,subscriber_id = 2
    统计的结果应该是4
      

  7.   

    两条记录是否代表同一个人点击取决于两条记录的list_id一样而且subscriber_id也要一样。
      

  8.   

    select count(*) from (select * from tablename group by subscriber_id,list_id order by null)
      

  9.   

    如果要排除subscriber_id或list_id的NULL值用下面的语句:
    select count(*) from (select count(*) as num from tablename where subscriber_id is not null and list_id is not null group by subscriber_id,list_id) b如果要subscriber_id和list_id都没有NULL值可以用下面的语句:
    select count(*) from (select count(*) as num from tablename group by ubscriber_id,list_id) b
      

  10.   

    select sum(cnt) from (select count(*) as cnt form tablename group by subscriber_id,list_id) tmp
      

  11.   

    我自己想了个办法select count(distinct(concat(subscriber_id,concat('_',list_id)))) from tablename