2010-05-16 31 views
2

统计数据库中的元素(很抱歉的冠军,我真的不知道如何短语:-))MySQL的基于有多少唯一值有在外地

我有了一个表日期和uid字段。

我需要获得UID的数量每个日期,目前我在做这在PHP运行多个查询,像这样的:

SELECT COUNT(uid) FROM users where Date = 'xxx'; 

有一个简单的办法只有一个SQL实现这一目标查询?

+0

你想计算唯一值还是总行数?您的标题和您的查询相互矛盾。或者在这张桌子上是“独一无二”的?在这种情况下,没有区别。 :) – 2010-05-16 11:21:57

回答

4

by子句使用组:

SELECT Date, COUNT(uid) FROM users group by Date; 
+0

@ 0plus1:请注意,这不会计算唯一值,它会计算**所有**值。如果这是你想要的,你应该调整问题的标题来匹配。 – 2010-05-16 12:46:05

0
SELECT Date, COUNT(uid) FROM users GROUP BY Date 
1

要计算的唯一值使用DISTINCT数量:

SELECT COUNT(DISTINCT uid) AS cnt 
FROM users 
GROUP BY `Date` 

如果你的列是一个日期时间,那么你应该使用DATE功能仅获取日期部分:

SELECT COUNT(DISTINCT uid) AS cnt 
FROM users 
GROUP BY DATE(`Date`)