mysql> select userid,paylogstate from uulog;
+--------+-------------+
| userid | paylogstate |
+--------+-------------+
|      7 |           1 |
|      7 |           2 |
|      7 |          32 |
|      7 |           8 |
|      8 |           1 |
|      8 |           2 |
|      8 |          32 |
|      8 |           8 |
|      9 |           1 |
|      9 |           2 |
|      9 |          32 |
|      9 |           8 |
|     10 |           1 |
|     10 |           2 |
|     10 |          32 |
|     10 |           8 |
+--------+-------------+
16 rows in set (0.00 sec)mysql> select userid,count(paylogstate) from uulog group by userid;
+--------+--------------------+
| userid | count(paylogstate) |
+--------+--------------------+
|      7 |                  4 |?????? 为什么不是 43
|      8 |                  4 |??? 为什么不是 43
|      9 |                  4 |??? 为什么不是 43
|     10 |                  4 |??? 为什么不是 43
+--------+--------------------+

解决方案 »

  1.   

    去掉group by userid呢
      

  2.   

    去掉肯定不对的了现在就是要统计相同 userid 的 paylogstate 总和
      

  3.   

    他统计的是 userid的个数哦,不是加后面的paylogstate
      

  4.   

    应该是这个count你用错了!本来就是应该是4,有4个userid是7的。。类推
      

  5.   

    那要如何统计相同 id 的 paylogstate 总和呢??谢谢
      

  6.   


    这个统计结果是正确的。
    group by userid之后,规范了count(paylogstate)的范围。
    也就是同一个userid的paylogstate的数量。依照你给的结果,没有错哇。
      

  7.   

    把group by userid去掉,应该就可以了。
      

  8.   

    mysql> select userid,count(paylogstate) from uulog ;
    +--------+--------------------+
    | userid | count(paylogstate) |
    +--------+--------------------+
    |      7 |                 16 | 、、、、不上43啊
    +--------+--------------------+
    1 row in set (0.00 sec)
      

  9.   

    mysql> select userid,sum(paylogstate) from uulog group by userid;