如何在MySQL中统计两个字段的唯一ID?

时间:2013-04-29 10:13:56

标签: mysql sql database

当我想选择带有2个字段的查询并且该字段是唯一ID时我有问题然后我尝试创建这样的表

created_at             user_id 
2013-01-05             1
2013-01-20             1
2013-01-23             2
2013-01-28             1
2013-02-01             3
2013-02-04             2

看起来任何user_id都不是唯一的,created_at也不是唯一的,所以我创建了这个代码的查询选择

SELECT MONTH( created_at ) AS month 
     , count( user_id ) AS total 
FROM applies where YEAR(created_at) = 2013 
GROUP BY month

这是结果

month             total
1                 4
2                 2

在1月份(1)实际上我有3个用户,但仍然显示4个用户,因为计数不唯一user_id 如何将user_id过滤为唯一?

1 个答案:

答案 0 :(得分:2)

不计算重复的user_id使用DISTINCT关键字:

SELECT MONTH(created_at) AS Month
      ,COUNT(DISTINCT User_id) AS Total
FROM Table1
GROUP BY MONTH(created_at)

结果:

| MONTH | TOTAL |
-----------------
|     1 |     2 |
|     2 |     2 |

See this SQLFiddle