开发者

wrong count in query

I have a table whose structure is as follows:

id  int
userid  int
status  enum ('pending','approved')
dop     datetime

Data is as:

id          userid               status             dop
 1            24                 pending       开发者_开发知识库     2011-02-14 06:41:32
 2            24                 pending            2011-02-15 23:02:45

When I fire the following query:

SELECT count( userid )
FROM t1
WHERE STATUS = 'pending'
GROUP BY userid

It's giving me count as '2', which is wrong, can anyone tell me what's wrong here? and how to get real count as 1


The group by statement is executed after the count. Use this instead:

SELECT count( DISTINCT userid )
FROM t1
WHERE STATUS = 'pending'


Do you want to count the number of user with status pending then?

SELECT count(userid)
FROM t1
WHERE STATUS = 'pending'
GROUP BY status, userid


Try to add the userid in the select clause :

SELECT userid, count( userid )
FROM t1
WHERE STATUS = 'pending'
GROUP BY userid


Maybe adding DISTINCT() on userid?


SELECT count( DISTINCT userid )
FROM t1
WHERE STATUS = 'pending'
GROUP BY userid


You sould use the COUNT(DISTINCT()) construction, it allow you to count the diferent values not NULL (docu)

Try this sentence:

SELECT count( DISTINCT( userid ) )
FROM t1
WHERE STATUS = 'pending'
GROUP BY userid

HTH!

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜