意外的计数结果

时间:2017-05-16 21:21:35

标签: mysql

我有以下查询,它返回请求表中每个给定用户的请求列中的条目总数,而不是标记为为任何给定用户播放的请求数。

false

期望的结果:例如

弗雷德:2(在总共6个请求中播放)

生姜:1(总共4次请求)

Lenny:2(在总共3个请求中播放)

实际结果:

Fred = 6

Ginger = 4

Lenny = 3

2 个答案:

答案 0 :(得分:2)

count没有按你想象的那样工作。您需要先使用where进行过滤。

...
INNER JOIN 

(SELECT t1.FirstName, count(*) AS CountPlayed 
 FROM RequestsTable t1
 WHERE t1.status = 'played'
 GROUP BY t1.FirstName)
.... 

实际上,您可以将整个事情简化为一个查询:

SELECT 
    t1.FirstName, count(*)
FROM 
    RequestsTable t1
WHERE t1.status = 'played'
GROUP BY t1.FirstName;

答案 1 :(得分:1)

尝试使用SUM代替COUNTCOUNT计0 /假;它只会忽略NULL。